Das Betriebssystem weist den laufenden Programmen bei Multicore-CPUs einen Prozessorkern zu - und zwar im Fall von WinXP immer den der gerade am wenigsten zu tun hat. Dadurch "springen" Programme, die nur mit einem Kern umgehen können, ständig zwischen den Kernen hin und her, denn die jeweils anderen Kerne haben ja immer gerade weniger zu tun. Das geht allerdings so schnell dass dadurch kein spürbarer Geschwindigkeitsverlust entsteht.
Das ist glaube ich erst bei Windows Vista geändert worden, dort bekommt dann ein SingleCore Programm, das viel Last verursacht, einen Kern exklusiv für sich und behält den auch.
Die anderen Kerne schlafen in der Zeit aber nicht direkt, sondern darauf laufen dann andere Prozesse, z.B. vom Betriebssystem, Virenscanner etc.. Die brauchen aber i.d.R. nicht viel Rechenleistung, so dass diese Kerne eigentlich "Däumchen drehen".
Intel hat deshalb in den meisten "Core" CPUs eine Technologie integriert, die die Taktfrequenz für jeden Kern einzeln je nach Auslastung reguliert. Die erlaubt dann u.a. auch dass sich einzelne Kerne die ausgelastet sind, selbst kurzzeitig um bis zu 4 Multiplikatorstufen übertakten können. Voraussetzung dafür ist dass die anderen Kerne nicht viel zu tun haben und deshalb im Stromsparmodus arbeiten. AMD hat inzwischen eine ähnliche Energieverwaltung, soviel ich weiß.