Recently I had to resume a Windows XP Virtualbox VM, to do some tests.
I have added some RAM and CPUs (from 1 to 2) to the VM, but the added CPUs aren’t detected.
After some internet surfing, I found the solution.
To force the detection, open the Command Prompt and type the following line:
rundll32 syssetup,SetupInfObjectInstallAction ACPIAPIC_MP_HAL 128 %windir%\inf\hal.inf
After a couple (in my case) the system will detect correctly the newly added CPUs.