onestamente al momento non saprei da dove iniziare per il multithread...
risolto con un semplicissimo
Dim StartTime as Date = Now
Do
Application.DoEvents()
Loop Until (Now - StartTime).TotalMilliseconds > 12500
dove 12500 è un esempio di ritardo in millisecondi
l' unica cosa che mi lascia perplesso è che, cronometro alla mano, il ciclo sballa di alcuni secondi... boh, il problema principale era di non bloccare il programma, quella è risolta, la precisione del ritardo non è assolutamente fondamentale