This is a bad, bad, bad idea. The device is a general purpose device intended to run multiple applications. The platform should not be a slave to your application. That's like saying that you have a desktop application that only runs at 640x480, so you should be able to lock someone's PC to that resolution.
The better solution is to either actually fix your software (gasp) to support both orientations (and you are aware that there are also different resolutions as well as square-screen devices, right?) or to have your app at least pop up some sort of message box to inform the user about compatibility when an unsupported resolution or orientation is selected.
As for the "how" to do it - you can't. Rotation is handled by the display driver, specifically by calling ExtEscape with DRVESC_SETSCREENROTATION. In the standard GPEFlat driver that ships with PB, this in turn calls DynRotate and goes on to call SetRotation (you can look at the public source in the eval edition is you really want to know how it all works).
The short of this is that to intercept that call, you'd have to either create a replacement display driver, or at least some shim that you insert as the driver that in turns calls the existing one. Neither of these are going to happen in managed code.