Tres formas:
1. Créalo en un formulario, si no quieres que se vea sólo tienes que iniciarlo con "load NombreForm" en lugar de "NombreForm.show"
2. la function API
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
te permite "hibernar" todo el proyecto durante los milisegundos que desees.
3. Diseñar un timer por apis:
Declare Function SetTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Dim mlngTimerID As Long
Sub TimerProc(ByVal hwnd As Long, _
ByVal uMsg As Long, _
ByVal idEvent As Long, _
ByVal dwTime As Long)
Dim llng As Long
llng = KillTimer(0, idEvent)
MsgBox "TimerProc disparado" _
& vbCrLf & "hwnd: " & hwnd _
& vbCrLf & "uMsg: " & uMsg _
& vbCrLf & "idEvent: " & idEvent _
& vbCrLf & "dwTime: " & dwTime
End Sub
Sub main()
'* Creamos el timer, se disparará cada dos segundos
mlngTimerID = SetTimer(0, 0, 2000, AddressOf TimerProc)
...RESTO DE CODIGO...
End Sub
Ojo: sin no pones más código el programa terminará antes de que hayan pasado los 2 segundos y no ocurrirá nada.