Does this need to bind to a database or another data source?
Is the grid updateable?
Have you checked out the Microsoft Exchange facilities for Web access? (this includes facilities for viewing your outlook calendar/appointments via a browser).
I guess that there are commercial grid's around - plenty more in the asp.net arena though. But...
A grid is just an html table. You can easily construct one in code using a loop - in your case, generating the required time increments using dateadd() or similar. Simply adjust the colour in code too.
<table>
<% dtTime = #8:00#
for iLoop = 0 to 6
'TODO: Get the text to display in this slot
sMessage = "Some Text"
'TODO: Determine the row colour
sRowColour = "silver"
response.write "<tr bgcolor=" & sRowColour & "><td>" & formatDateTime(dtTime, vbShortTime) & "</td><td>" & sMessage & "</td></tr>"
dtTime = dateadd("n", 30, dtTime)
next
%>
</table>
(Content Management)