No creo que sea nada veloz, andar moviendo la selección para obtener un caracter. ¿Qué es lo que quieres hacer?... digamos.. el resultado final. ¿No puedes trabajar con el texto directamente?
Código Delphi
[-]
var
Text: string;
i, Len: Integer;
begin
Text := Richedit1.Text;
Len := Length(Text);
for i := 1 to Len do
Caption := Text[i];
end;