Is the current script burning the bootloader on the chip that will receive the hex?
Is it possible to have multiple hex files on the SD and with new buttons to assign a hex file? E.i. in the loop if button1 is pressed const char wantedFile [] = "prg1.hex"; and if button2 is pressed const char wantedFile [] = "prg2.hex"; and after startSwitch will be pressed as normal and selected hex will be written.
No, the sketch runs on the board that you use as a programmer. Be aware that burning the bootloader using the IDE also sets the fuses, something that I doubt the sketch will do.
See the URL above; yes, you can.
From the URL, the sketch does a listing to serial monitor (or other terminal program) of the hex files on the card and allows you to select one. I do not see a reason why you should not be able to connect buttons (and possibly a LCD) to select a file.