nvidia and independant tests (done by members of the anandtech forum) have confirmed that the 9600GT is essentially the same as the 8800GT only with less stream processors and some new purevideo HD features (or rather, features that were incomplete and disabled).
If you use rivatuner to disable the extra SP, and set the clockspeeds the same, and use a modifed inf file to install them both with the same drivers, then it performs identically in the tests.
The reason why the 9600GT seems to keep up with the 8800GT is because it uses much newer drivers. Nvidia has made some significant driver side improvements which will affect ALL cards once the drivers are ready. But for now they are only available for the 9600GT (because the current WHQL drivers do not support it, so they just WHQLed the latest beta and called it the "first release" driver for the 9600GT and ONLY for the 9600GT). Those drivers seem to be stable on the GT, but people have reported blue screens and other issues if they install them with other hardware (lucky me I am running 174.16 just fine on my 8800GTS 512 on vista 64)
Some people claim it was done on purpose to make the 9600GT performance seem higher then it really is. But I say that is just conspiracy theorism right there, the fact that it causes various problems for people with other cards who force install it is a clear indication that the drivers are just not ready for mass consumption.. but who knows.