I was going to suggest the same starting point as LBA_Flyer, namely the Reward Finder in the app, as you can set that to whole regions. Unfortunately, if you drill into the South Africa option, you will discover there are no J outbound seats available, only inbound. Based on comments by T8191, I get the impression you have to be fairly sharpish out the blocks to secure outbound J seats to SA.
The other cities have availability on both directions, although of course are more Central Africa than your original request. Despite that, I think it is still a good tool if your friend has flexibility regarding their destination.
Otherwise of course, you can set up alerts on Ba Redemption Finder and Expertflyer (if you have a subscription), in the hope that something gets released. Seats do sometimes appears close in, so if your friend has flexibility to go at short notice, that will increase their odds.