Big_or_what:
forcing KMD software to run only on a single processor should be not a problem, but... on MP oriented environments. I have been writing parallel applications using Intel Compiler 7 with OpenMP standard. SP mode settings (ranges) should be made during the compilation of the software - source stage. If you are using multiprocessor environments to build your app, then you can set SP mode easily, by yourself.
The other situation is in "usual" Microsoft Windows environment and standard compilers like Visual C++ and Borland C++ which doesn't allow to design and build multiprocessor applications with shared memory architecture (planned to run on parallel systems). There is no "force SP" like option in VC/Borland.
The last question is a patch. Theoritically it sounds pretty possible, but I wonder if thread manipulation (HT must switch between them) on KMD is a wise idea

.
Regards.