mmmm come cosa intendo con in diversi thread?
scusami immagino che tu sappia cosa sono i thread (in breve dei processi che il tuo programma puo' creare che hanno 1 loro stack di memoria e che quindi ti permettono di gestire vari task (lavori) che vuoi fare lasciando libero il tuo processo principale che puo' fare altro) dando questo per assodato se tu crei 1 thread che apre 1 messagebox potrai crearne altri (dal programma principale) senza che la messagebox (che qnd si apre ferma il processo corrente) influisca sul tuo processo padre.

se cerchi thread trovi 100 esempi nei linguaggi che desideri su come crearli e po vedrai che potrai aprire un numero arbitrario di messagebox dal tuo programma, se hai bisogno chiedi pure