All right guys, I am working on a project that requires me to load a sketch (.hex file) from an sd card. Is this possible?

The way I am thinking of doing is to write some sort of loader on to the atmega chip, the loader would have the ability to load sketches from the SD, if I reset the arduino, the loader would start up by default. Can this be achieved?

The bootloader section of memory can write into the application section of memory so it is theoretically possible. Currently the bootloader doesn't provide a function that you can call from a sketch to write into the application space. You would probably have to start with that.

Another option is to have an Arduino with an SD card act as an ICSP device (like the ArduinoISP sketch) and program a separate Arduino through the ICSP header. I'm pretty sure that has already been done.

Another option is to have an Arduino with an SD card act as an ICSP device (like the ArduinoISP sketch) and program a separate Arduino through the ICSP header. I'm pretty sure that has already been done.

so by that you mean that I would need two Arduinos connected. The first one boots up, flashes the second one, then the second one boots up and does everything I need.