I have done: Kampala - Jinja - El Doret - Nairobi - Arusha - Dodoma - Iringa - Mbeya - Nakonde - Mpika - Lusaka - Harare - Masvingo. Not sure how easy it would be to continue from there to Johannesburg. From Harare you could also go to Gaborone (via...