Voy a intentar probar el programa a ver si te entiendo porque sigo en la parra.
De todas formas, si voy por buen camino, creo que quieres que según escribes en el texto destino, el texto origen se vaya desplazando para poder ir leyendolo.
Si pones este código en los eventos KeyUp y Click del texto destino, el texto origen avanzará línea a línea según escribas en el otro lado. Igual te apañas con eso.
Suponiendo que el textbox que contiene el texto a copiar es RT1, y el textbox donde escribes es RT2, solo necesitas esto:
Private Sub RT2_Click()
On Local Error Resume Next
RT1.SelStart = RT2.SelStart
On Local Error GoTo 0
End Sub
Private Sub RT2_KeyUp(KeyCode As Integer, Shift As Integer)
On Local Error Resume Next
RT1.SelStart = RT2.SelStart
On Local Error GoTo 0
End Sub
No se, igual no es así y sigo sin saber que quieres hacer.
Sobre lo de poner texto en rojo si que no tengo idea de como se hace, y tiene que ser facil, lo haces hasta aquí. Yo ni ventanas de código sé poner.
Sobre lo de contar las líneas, creo que el sendmessage te devuelve la cantidad total de líneas, no el número de línea en uso. De todas formas la línea en uso la tienes, como dijo Culd, con:
Msgbox "Estamos en la línea " & RT1.GetLineFromChar(RT1.SelStart) + 1
y cuenta tambien las líneas largas que se han partido.
Saludos