El cargador de arranque está en la ROM, no es modificable por el usuario (es decir, no puede "grabar" un nuevo cargador de arranque). Este appnote describe las características del cargador de arranque para diferentes partes de STM32.
En todas las partes de STM32 que he usado, tira de BOOT0 a tierra para omitir el cargador de arranque y arrancar desde flash (dirección 0x0800000 en la mayoría de los STM32s). Con BOOT0 bajado, el estado del pin de BOOT1 no importa. Normalmente suelo bajar BOOT0 con una resistencia de 100 kOhm en los tableros que diseño en el trabajo. No lo dejes flotar, no es no interno, por lo que sucederán cosas divertidas si no lo haces.
Puede usar ST-Link SWD para actualizar su firmware al chip y depurar el código de ejecución. Cualquier IDE que admita el STM32 debería saber cómo hacerlo de forma inmediata, personalmente uso Ac6 porque es gratis. Como mínimo, debe conectar las líneas SWDIO, SWCLK y GND al programador, pero también debe llevar a cabo NRST siempre que sea posible, ya que la depuración sin una línea de reinicio de hardware puede ser una molestia real.
En cuanto a su última pregunta, el gestor de arranque para la serie F103 no es compatible con USB, aunque algunas otras partes (como la serie F105) sí lo hacen. No recomendaría la programación a través de USB a menos que tenga una razón específica para: SWD le permitirá programar y depurar, y es mucho más sencillo comenzar a trabajar.