When I travelled to CPT a few years back, it was necessary to clear immigration and customs at JNB, hence bags had to be collected in international arrival followed by a short walk to domestic departures check-in and bags checked back in for the JNB/CPT flight which is classed as a domestic sector. You will probably need to allow a minimum of 60 mins for the whole process especially if a few international flights are arriving at the same time.
Would be inclined to allow more than 60 minutes, just in case. Think of all the waits: border control, baggage reclaim, checkin/bag drop, security. There's also a possibility of delays if you're cutting it fine (it's called "sod's law"!). Give yourself more time and avoid getting stressed.
That said, there are plenty of flights between JNB and CPT!