If I understand you correctly, you want to turn a bad practice into a compilation error.
By making the exception type non-heap-allocatable, you've managed to make this illegal:
throw new MyExceptionClass();
Alas, the next part can't be done like you want it. There's no way to make the catch block illegal. Although, if you've made it illegal to heap-allocate MyExceptionClass, there's no need to worry about the catch blocks. It'll just be wasted space.
If you want to enforce not catching by a pointer, you want a lint-like tool.
I'd recommend looking at EDoC++. It's a modified gcc compiler to check for proper exception usage.