Dado el método que estas usando para imprimir, lo único que te queda es justificarlos vos a mano.
Para conseguirlo, has de fijar la posición derecha de los valores a una coordenada, averiguar el tamaño que tendrán ya impresos (en pixels) con el método TextWidth del Canvas y luego calcular en base a esto la posición donde imprimirlo.
Creo que me he enrollado un poco, y un trozo de código dice mas que mil palabras
Código Delphi
[-]
Canvas.Font.Pitch = 'Helvetica';
Canvas.Font.Width = -11;
PosX := 150 - Canvas.TextWidth('12,789.23');
Canvas.TextOut(PosX, 50, '12,789.23');
Hasta luego.