Pentium D's are truly two separate processors. However, Microsoft licenses Windows XP and greater on a "per-socket" level. That means if I have a 64 processor system but its all on one socket (e.g. multi-core), then Windows XP Home's licensing will support it just fine (the 32-bit kernel used by XP is limited to 32 processors, though, but that's a different story).
So, Windows XP Pro supports two processors, but I can have a dual dual core Opteron box running Windows XP Pro without problems.
There is no registry hack to allow more processors than the OS is licensed for. It's a kernel level hard setting.
As far as how XP Home/Pro manages processors, it treats dual core processors the same as Hyperthreaded processors. It keeps multithreaded processes on the same "node" (e.g. socket) and balances processes between physical processes (e.g. between nodes).
In other words, if you have 4 cores on two processors and are running 2 programs 1 program will go on physical processor 0 the other on physical processor 1. The way Intel maps the physical processors is the same as in HT, afaik. For example, processor 0 has two cores, processor 1 has two cores. Windows CPU0 is processor 0 core 0, CPU1 is processor 1 core 0, CPU2 is processor 0 core 1, CPU2 is processor 1 core 1. They do that to ensure both sockets are being used on a Windows 2000 system that doesn't support the scheduling the way Windows XP does.
Hope that helps
