Actually, I believe there is a fairly large difference.
WIN2K is multiprocessor enabled, but doesn't understand the difference between "multiprocessor" and "Hyperthreaded," and I'm reasonabley certain that XP does.
In a nutshell (again, my understanding, I could be off a bit), Hyperthreading enables the use of some (otherwise idle) elements in the processor chip and gains some additional efficiency in doing so, but the additional Hyperthread process is nowhere as powerful as a "real" additional processor.
If the OS thinks it's looking at another (real) processor, the OS may assign a major chunk of processing, and, because it's really NOT a full, real processor, it doesn't perform "on schedule" and other processes end up waiting longer than predicted ... the overall effect is slower / less efficient processing.
If the OS is "Hyperthreading Aware" (as I believe XP is, at least to a minor extent), it recognizes the hyperthreaded / virutal processor for what it is, and assigns more appropriate tasks, keeping the overall processing on-schedule, and gaining some efficiency.
I have a dual 2G Xeon system, I've tried WIN2k and XP: XP (at least with my apps - mostly video editing/rendering) works better. The most recent "Holy Sh*T" moment I had was when Tsunami (TMPGEnc) went hyperthread-enabled. A one hour, 36Gig AVI file was rendered to mpeg1/VCD format (two pass, max quality) in 26 minutes (complete, both passes). An mpeg2/dvd version was rendered in ~35 minutes (single pass, 6 Mbps VBR). At first , I thought it errored-out and bombed ... but the video is 100% OK, perfect-as-possible. The usual render time was more than double that time with the same options enabled.
I may have mutilated some of the technical details, and I may be completely off-base, but the bottom line is that I have tried both (WIN2K and XP Pro) on my dual Xeon system, and XP "fer sher" works better for me. I'm really tempted to load the NET 2003RC2 Server and see what new bells & whistles it opens up.
FWIW
Scott