Your only choice (for non-rooted / stock system devices) is to create a home screen replacement and have the user select to always use your app for home screen.
You can restrict the applications that can be used by simply not providing the user with a way to launch any except for the ones you want.
Kytephone is an application that has this implemented.
Without creating a home screen this is not possible on a stock device though. One application is not able to shut down / block a different one.