Another possibility is you can balkanize South Africa and have the successor state be in a more white region.
Well, just have South Africa not become a Union in 1910.
Natal was pretty ambivalent about joining the Union to start, and might not take that much to make the Union a non-starter.
This will totally change the dynamics of the region, especially immigration policy, and it will not be that difficult to let the Cape have a non-black majority. Already the present-day Northern and Western Cape provinces have coloured majorities or pluaralities at least.