I ran into the exact same results and limitations myself.
Ran some test on Win2k with the latest ActiveState Python 2.3.2 build. It has its limit at 512 sockets on a select.
using its multi-threading, I got up to 2000 threads using blocking sockets. I could not create any more threads at that point. a non-blocking multiplexing approach using arrays of 512 sockets using select got me 4000 sockets ok.
That is where I stopped.