You can impose your own formatting with sprintf. The first one is used to format the heading, the second for the data ...
[tt]
#!/usr/bin/awk -f
{
if ($1 in col) {
cnt=++col[$1];
} else {
col[$1]=1;
row[0]=row[0] sprintf(" %10.3f",$1);
cnt=1;
};
row[cnt]=row[cnt] sprintf(" %10.3f",$2);
if (cnt>max)
max=cnt;
} END {
for(x=0;x<=max;x++)
print row[x]
}
[/tt]