I used a few more tools, because I wanted it to be totally dynamic (able to handle numbers of any reasonable width, number of decimal places, etc.)
Of course, the tricky part is that the crosstab tool sorts columns alphabetically. I was expecting it to sort 1, 10, 11, 12, 2, 3, etc., so I went through the extra step of padding the column headers and then removing the padding later. However, I learned from
@patrick_digan's solution that crosstab sorts the columns numerically if the field selected for the column header is a numeric type!