Data la natura dei dati in questione, la tabella è una struttura esagerata. Propongo una semplice lista, la quale risulta anche di più rapida e accessibile consultazione. Un esempio.

codice:
XHTML

<form id="ordina_prodotti" action="...">
   

Ordina i nostri prodotti per la casa.</p>
   <ul id="elenco_prodotti">[*]
         <label for="stappa_lattine">Stappa lattine</label>
         <input id="stappa_lattine" name="stappa_lattine" type="checkbox" value="stappa_lattine" />
      [*]
         <label for="trita_briciole">Trita-briciole</label>
         <input id="trita_briciole" name="trita_briciole" type="checkbox" value="trita_briciole" />
      
      [/list]
</form>


CSS

.prodotto_hover
{
   background-color:#D4D4D4;
}
.prodotto_selezionato
{
   background-color:#D41122;
}


Javascript

window.onload = function()
{
   var elenco_prodotti = document.getElementById

('elenco_prodotti')
   var prodotti = elenco_prodotti.getElementsByTagName('li')

   for (var i = 0; i < prodotti.length; i++)
   {
      prodotti.item(i).onmouseover = function()
      {
         this.className += ' prodotto_hover'
      }
      prodotti.item(i).onmouseout = function()
      {
         this.className = this.className.replace('prodotto_hover', ' ')
      }
   }

   function colora_prodotti()
   {
      for (var i = 0; i < prodotti.length; i++)
      {
         var input_prodotto = prodotti.item(i).getElementsByTagName('input').item(0)
         if ( input_prodotto.checked )
         {
            prodotti.item(i).className = ' prodotto_selezionato'
         }
         else
         {
            prodotti.item(i).className = prodotti.item(i).className.replace('prodotto_selezionato', ' ')
         }
      }
   }

   for (var i = 0; i < prodotti.length; i++)
   {
      var input_prodotto = prodotti.item(i).getElementsByTagName('input').item(0)
      input_prodotto.onclick = function()
      {
         colora_prodotti()
      }
   }
}