The shooting took place at the corner of Adderley and Strand streets in the city centre shortly after midday.
"The man was sitting in his car when an argument occurred between him and another driver. It is alleged that they were arguing over a parking spot," the SA Police Service media centre said in a statement.
The 34-year-old driver "fired four shots, fatally wounding the 42-year-old man in his head and arm".
The man died at the scene.
A passenger in the vehicle escaped unharmed.
Police arrested the man from Milnerton, and confiscated a firearm.
He would appear in court soon, the statement said.