An option would be to break the Highway lines into equal segments of 1km each. You can use ET Geowizards to do this or you can use points along a line tool, then split the line using that tool.
Create a field called "Chainage" and assign the kilometre value to it. Create a field in the broken polyline file called "Road_ID" and using the field calculator assign an ID such with the road name and the chainage.
In your table, make sure you have a record for each kilometre. If road works happened from 27km to 30km in 2009, then there should be 4 records for each kilometre and there should be a field for the year.
In the Table with the road works do the same. Have a field called "Road_ID" and link the Road name and the chainage together. You will then have a series of records with the name of the road and sequential distance. From your example you should have 36 records for 2010 each labelled "HWY107_22" ... to ... "HWY107_37" in one column and 2010 in another.
Once you have this table formatted, you can bring it into ArcMap. Use the table join on the split roads layer with the table you just added using the "Road_ID" as the common field. Once the join is complete, copy the year across into the roads layer. You can then run a dissolve on this roads layer using the Road Name and the Year. That will give you something you can symbolise.