Hay que tener en cuenta que el método sugerido por @
engel lex, "
ScrollToCaret", como su propio nombre indica lo único que hace es deslizar el ScrollBar hasta la posición del Caret (el Caret es el cursor de texto) así que usarlo por si solo no sería una solución viable según que caso, ya que si no modificas la posición del Caret, siempre va a escrollear a la misma posición
Si estás usando el método "AppendText" para adjuntar texto:
- RichTextBox1.AppendText("Texto") 
Entonces una llamada a "ScrollToCaret" será suficiente, porque el método "AppendText", además de adjuntar texto, pone la posición del Caret al final del texto adjuntado.
Por otro lado, si estás adjuntando texto de esta manera:
- RichTextBox1.Text &= "Texto" 
Entonces necesitas modificar manualmente la posición del Caret, para poder Scrollear hacia abajo.
Por eso, según el caso, te sugiero una de las siguientes soluciones, aunque de todas formas la última solución deberías evitarla siempre que puedas, ya que lo correcto es usar el método "
AppendText": 
· .AppendText:
-     Private Sub RichTextBox_AutoScroll(ByVal sender As Object, ByVal e As EventArgs) _ 
-     Handles RichTextBox1.TextChanged 
-   
-         If CBool(sender.TextLength) Then 
-             sender.ScrollToCaret() 
-         End If 
-   
-     End Sub 
· .Text &=
-     Private Sub RichTextBox_AutoScroll(ByVal sender As Object, ByVal e As EventArgs) _ 
-     Handles RichTextBox1.TextChanged 
-   
-         Dim _TextLength As Integer = sender.TextLength 
-   
-         With sender 
-   
-             If CBool(_TextLength) Then 
-   
-                 .SelectionStart = _TextLength 
-                 .ScrollToCaret() 
-   
-             End If 
-   
-         End With 
-   
-     End Sub 
Nota: Obviamente, si piensas escribir 
manualmente en el Control, entonces la solución con el método ".Text &=" de poco sirve. ya que estoy enviando el Caret al final del texto, siempre.
Saludos