En el caso de HMG jamás vas a lograr que se produzca el error de clase ya registrada si no es con MT porque la función de definir ventanas/controles de HMG capta antes de crear la ventana que existe duplicación en el nombre de la ventana o control. Talvez no te des cuenta todavÃa de lo que quiero decir porque estás mirando los componentes aislados y no como un todo, que es como funciona la lib.
En el caso del ej. si las cuatro son del tipo main o activadas por separado la respuesta es muy sencilla cuando se cierra la ventana principal o el contador de ventana llega a cero se envÃa un ExitProcess y se termina el proceso y por supuesto todos los thread.