Moving the code and interrupt locations in Arduino
I'll preface this answer by saying I've never actually tried to do this. That being said, Arduino is just a layer on top of avr-libc / avr-gcc. The user manual FAQ explains how to locate code to a fixed address, and I think you should be able to just do it the same way in your Arduino source code. The Arduino IDE is written in Java, and the source is available - you could modify the Compiler.java file to add the necessary flags to the linker (i.e. -Wl,--section-start) to locate your code. I would not recommend trying to go down this road though. 

What would be better is to try using Eclipse as your Arduino IDE (lots of info on the web on how to do this), you could just set the linker settings there as you normally would. Much more straight forward.