I think the comfort is in the following order (and for me that means mainly the seats):
1. SAA via FRA (very nice seats in the Airbus 340-600)
2. BA direct from London (upper deck best of course)
3. SAA direct from London (Old seats on 747 but reconfigured so they are flat bed now, pretty good too - that would be the longest seat in C class)
4. LH via FRA (horrible old C seats)
Please watch out for LH and SAA code shares, you don't want to end up on LH metal!
I also flew LX once, but that was in First Class. The seats in C looked similar to LH old C, but maybe a bit more space and more comfortable. Don't know what seats they use now.
There is also an SAA flight ZRH-JNB, but that is on an Airbus 340-200 with not so nice seats I think.
Iberia - if they have the new business class on the route, that should be as good as SAA (I think it's almost the same seats).
I don't know about KLM and AF personally.
There may be some more options to JNB (Virgin, Emirates, Olympic) but I mostly went to CPT so I am not sure about these.
Have you also considered Nationwide? They have a non-stop JNB-LGW and are apparently introducing a real Business Class from February. Seat seems to be a bit better than LH Old C. This would probably be the cheapest option
SmilingBoy.