I would create the data as 331 rows and then with the help of css change the rows to columns, alternatively maybe the pivot table widget from the market place could help you out as well.
Create a table 3 column – 1st one month name, 2nd date and 3rd one for your custom value. Now you can simple use gallery widget to display the record for days in individual month and change the display in column structure using CSS.