si, serve un bootloader

Cos'è immagino tu lo sappia, sono poche righe di codice che vengono eseguite all'accensione, al reset del microcontrollore o al limite le puoi richiamare anche dal firmware.
Di solito il bootloader si mette in ascolto di una porta di comunicazione, nel tuo caso usb, se entro quel tempo riceve un comando definito rimane in attesa di altri dati, il nuovo firmware, che andrà a scrivere nella memoria programma sostituendo di fatto il firmware, se entro il tempo prefissato non riceve il comando definito il bootloader richiama la prima riga del firmware e il sistema inizia il suo lavoro.
Tempo fa avevo provato dei bootloader, ne trovi sul sito di microchip o in rete fatti da altri utenti.
Quello che ti manca è l'interfaccia lato PC e la connessione fisica, quest'ultima sarà immagino solo un cavo usb con i connettori adeguati.
Non ho cercato ma immagino che qualcuno abbia fatto una GUI semplice per caricare il file hex e mandare il messaggio al loader.
Non sono neanche sicuro se sia possibile avere un controllo sul fatto che la programmazione sia andata a buon fine in ogni locazione di memoria.