Yes, but you will have hard time trying to see it. Using a empy loop is bad way to introduce delay in any program. See this link for better description:
I used the Win32 API functions QueryPerformanceCounter() and QueryPerformanceFrequency() to get time intervals as low as 3 microseconds some time ago. I helped a student drive two stepper motors with it with perfect accuracy. But use them in a loop that has DoEvents() as stated above. Also, you can get the odd glitch because of the preemptive nature of a multitasking system when time intervals get quite small.
I dont know about vb4 but I use vb 6 and it has timers. you just have to add a timer object to your form and set the interval of the timer. In this way you can get a delay from 1ms to abt 3 seconds (depending on the value of the interval). If vb4 has timers then it is fairly easy to create delays !!
Public Sub Wait(ByVal mS As Integer, Optional ByVal CheckEvents As Boolean = False)
Dim Start As Long = Now.Ticks
Do
If CheckEvents Then Application.DoEvents()
Loop Until Now.Ticks > Start + (mS * TimeSpan.TicksPerMillisecond)
End Sub