I want to flash a hex file stored in a micro SD card into an Arduino [Uno/Nano]. So far I can read and write to the SD card using Arduino.
Without modifying the bootloader, is it possible to flash the Arduino using micro SD card module?
No. Only the bootloader is allowed to write to the program flash.
Yes, but I am not sure it can work from the smaller Arduino models. Have a look at the Phoenard project. The platform, based on a 2560, flashes .hex files on demand, which are stored on the SD card.
It's an open-source project, so it should be possible to go through the code and see how they do it.