Sobers and Kallis are/were both batting all-rounders. Therefore I'd judge their respective merits, first and foremost, by the quality of their batting.
Sobers seems to have been the better batsman. We don't even need to rely on matters of debatable relevance, such as flair or aggressiveness, in order to demonstrate this. The stats do the talking. Quite simply, to average 57.78 in his day was a greater achievement than to average 54.57 (51.38 against non-minnows) in the modern game.
As for their bowling, their records are comparable and it's hard to choose between them. Kallis' record is better in some respects (both average 34 against non-minnows, but Kallis did so on better batting pitches) but you cannot discount the fact that Sobers offered other options to his captain by being able to bowl spin. So this is a very hard one to call. Moreover, as I said at the outset, bowling is both players' second string and therefore even if there were a measurable difference between them in bowling, this would be outweighed by the difference in batting.
As for fielding, Kallis is an excellent slip catcher, while Sobers was pretty much the best fielder in the world (perhaps excepting Colin Bland) during his day. So I don't think there's much between them there.
Overall, then, Sobers wins for me. However I still believe that Kallis is a magnificent player, and a great of the game.