You can do it by changing the handler mappings, either in IIS or through the httpHandler mappings defined in the web.config.
Or you can have an HttpModule do it.
However, since you are already using asp.net (to judge from your tags) and you've only one exception, then an easier way is probably just to do it at that level. If not, the logic is much the same for doing this from an HttpModule.
In your page-base class (if you don't already define an abstract class in between System.Web.UI.Control.Page and your own pages it might be worth looking at, it's a handy place to put commonly used methods) put a virtual member that gets called before the main page-load handler (e.g have a method called OnLoad that calls this and then your "real" page-load method).
In this method, check the http method used, and if it's not correct set the status code to 405, output an error page for bonus marks, and then stop all processing.
In your page that allows get, override and change the method you check for.
If your class structure doesn't allow this to be done easily, then the HttpModule approach will be easier. Here you'll have to examine the URI to know which method to allow, but the rest is pretty much the same.