Con este código puedes avanzar (scroll) una serie de líneas (en este caso 100).
Código Delphi
[-]
var
ScrollMessage:TWMVScroll;
i:Integer;
begin
ScrollMessage.Msg:=WM_VScroll;
for i := 0 to 100 do begin
ScrollMessage.ScrollCode:=sb_LineDown;
ScrollMessage.Pos:=0;
Memo1.Dispatch(ScrollMessage) ;
end;
Puedes cambiar el tipo de scroll por
SB_LINEUP para realizarlo hacia arriba.
Con algunas pequeñas modificaciones, creo que puedes conseguir que el scroll sea por párrafos, por ejemplo, buscando el caracter de Fin_de_linea o el Carry_return.