Per fare quello che chiedi è necessario l'utilizzo di un Timer.
Il Timer espone un evento (che si chiama Timer anch'esso) che viene rilasciato ad ogni scadenza del tempo impostato nella proprietà Interval del Timer.
In questo evento ti dovrai occupare di generare la riga e di mostrarla un carattrere alla volta nella ListBox.
Tra un carattere e l'altro potresti usare un ciclo di ritardo o, ancora meglio, la api Sleep.
In linea di massima:
	codice:
	Private Sub TuoTimer_Timer()
    ' Genero la stringa da mostrare
    ' [Generazione della stringa]
    'Aggiungo la riga alla ListBox
    TuaListBox.AddItem ""
    'Creo un ciclo per aggiungere un carattere alla volta
    For i = 1 To Len(s)
        'Scrivo la stringa un carattere alla volta sull'Item appena aggiunto
        TuaListBox.List(TuaListBox.NewIndex) = Mid(s, 1, i)
        'Aspetto 100 ms
        Sleep 100
        DoEvents
    Next
End Sub
 
La dichiarazione della Sleep, è questa:
	codice:
	Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
 
Il codice serve solo da esempio, l'ho scritto direttamente qui, per cui controllalo bene e studiane il funzionamento.
 Boolean
 Boolean