Creo que deberías especificar con más detalle lo que quieres lograr. Por ejemplo, con este código
Código Delphi
[-]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
C, I: Integer;
begin
I := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
C := Length(Memo1.Lines[i]);
if Key = #13 then
Key := #0;
if (C >= 3) and (Key <> #8) then
Memo1.Lines.Insert(I + 1, '');
end;
logras más o menos lo que quieres: al escribir el cuarto caracter en una linea, automáticamente se coloca en la siguiente; la tecla de retroceso funciona como se espera, y al oprimir ENTER se pasa a la siguiente línea sólo si ya se completaron los tres caracteres.
Pero no has definido si esto es realmente lo que deseas del ENTER, ni tampoco qué debe pasar si te cambias a una línea anterior. En resumen, especificar qué debe suceder en cada caso posible.
Por otra parte, habría que ver si no te conviene más usar otro tipo de control, como un StringGrid, por ejemplo.
// Saludos