You need a custom boot-loader that does something with the binaries you have on a USB drive. It's not something we have examples of, but updating TouchGFX firmware should be no different than updating other firmware so you can probably find some examples on the general STM32 community.
Some ideas: Your boot-loader should check to see if there is a usb drive attached, otherwise jump to current application. Remember that your boot-loader should know how to program the internal and external flash, and maybe have a binary for each.