Personally, I would only do two cities. We did 9-10 days in early August of this year, with 3 nights in JNB, and 6 in CPT. There is a wildlife reserve around JNB, that I liked. Especially the part where they were feeding the lions, and the teenage lions went and punctured one of the cars tires. Pretty funny, as long as it's not happening to you.
We took the train down to Simonstown, and went to see the penguins that were on the public beach. No boardwalk for us. It was very nice, and cost all of $9 for the train and minivan from the train station to the beach, for 3 people.
I just wish there was a IC, Hyatt or Hilton in CPT.