I had two Corvettes at the same time with white tops and still have one. Both of these cars were show cars so clean, brilliant white tops were imperative!

One luxury we had is that we had our '02 since new so we didn't have to correct someone else's mess. If you have an older car, my technique may not work.
At least once or twice a summer, I use the common household cleaner, Soft Scrub with Bleach. I wet the top, pour this stuff over it, and then scrub with a hard brush, back and forth, over and over. Let it sit on the top for a short time, and then rinse thoroughly. You will have to really clean the car and the Soft Scrub will seep into grooves, etc. and then dry. It won't hurt the car at all but needs to be removed.
In between the Soft Scrub sessions, I just wash the top with the same car wash I use. I have heard great things about some other automotive top products but have not used them.
Let us know how you make out.
Elaine