Looks good. You can validate it against w3c.org's validators, to be sure.
Ok, the short answer is that you use CSS to style HTML elements. You could create two CSS classes, one for normal color, and one for "old" dates.
<style type="text/css">
.normal
{
color: black;
}
.old
{
color: red;
}
</style>
Something like that, to use a simple example. This goes in your HEAD portion of your document.
Then, to apply the style, add the "class" attribute to your tags:
<td class="normal>normal</td>
<td class="old">old</td>
The trick is, how to do that programmatically? Again, I suggest server-side. There is no one solution, first you have to decide what language you're going to use, and learn the basics of that language.
I suggest PHP. Daniweb has a great PHP forum.
The basic idea is that you create CSS and HTML to control how the page looks, and then you write a PHP program to output the CSS & HTML. At the time the PHP program runs (which is as soon as a user browses to the page), it can enter the dates into the table, check the dates, and add the correct "class" to the table elements.
Daniweb in fact is a big PHP program.