:help quickfix-window
mentions about reformatting of error lists.
The following setting works for me(update):
au BufRead quickfix setl modifiable
\| silent exe "%!perl -ple '
\my ($file, $pos, $msg) = split qr{[|]}, $_, 3;
\my $aligned_pos = sub {
\ my @p = split qr{[ ]}, shift;
\ return if @p == 0;
\ return sprintf q{\\%3s}, @p if @p == 1;
\ return sprintf q{\\%3s \\%s}, @p if @p == 2;
\ return sprintf q{\\%3s \\%s \\%2s}, @p if @p == 3;
\ return sprintf q{\\%3s \\%s \\%2s \\%-8s}, @p if @p == 4;
\ return join q{ }, @p;
\}->($pos);
\$_ = join q{|}, $file, $aligned_pos, $msg;
\'"
\| setl nomodifiable