На одном или нескольких. Главное, что последовательно. Это значит, что (грубо) одна команда процессора выполняется на одном ядре, вторая на втором. Но это только ведет к затратам времени на переключения контекстов ядер (то есть потоков). Впрочем, такое происходит постоянно даже на одном ядре.
Прав ты в том, что в висте (почему-то именно в висте) есть повышение производительности. Но это легко объясняется. Представь себе, что одно ядро у тебя на 20% загружено самой Вистой, то игре не хватает 20%. Если игра использует 2 ядра, то ОС распределяет ее нить на 2 - 50% на первое и 50% на второе. В итоге первое у тебя загружено на 70%, второе на 50%. Вот и ответ. Игра просто работает так, как работала бы на все 100% на одном.
А твой пример с 11 нитями уже был - там 10 из них легкие :) Основная нить - одна.