Hay dos formas de hacerlo, una es capturando el codigo que devuelve una combinación de teclas con alt (alt+a por ejemplo devuelve 0 30) la otra es mas complicada, se trata de detectar el flag que enciende la tecla alt en unos registros del procesador, la tecla alt no devuelve por si misma un codigo.
uses crt;
var
a:char;
begin
repeat
a:=readkey; {primer codigo}
if a=#0 then {si es una combinación o tecla gris entonces}
begin
write('#0 + ');
a:=readkey; {tomo el segundo codigo}
writeln('#',ord(a));
end;
until a=#27; {hasta presionar escape}
end.