Simulation :hover sur parent
    On ne simule qu'un changement de la couleur de fond de la <tr> et éventuellement la bordure, mais pas plus.
  
Le rendu
| Colonne #1 | Colonne #2 | Colonne #3 | Colonne #4 | 
|---|---|---|---|
| Col #1 Lig #1 | :hover | Col #3 Lig #1 | Col #4 Lig #1 | 
| :hover | Col #2 Lig #2 | Col #3 Lig #2 | Col #4 Lig #2 | 
| Col #1 Lig #3 | Col #2 Lig #3 | :hover | Col #4 Lig #3 | 
| Col #1 Lig #4 | Col #2 Lig #4 | :hover | Col #4 Lig #4 | 
Quelques explications
Pour ne cibler que quelques éléments de la <table> nous utilisons, pour l'exemple, la structure HTML simplifiée suivante  :
    
<td>
    
  <p>:hover</p>
</td>
On va jouer avec le pseudo-élément :before de l'élément qui, survolé, doit déclencher le changement de couleur de fond de sa <tr> parent.
    
Ce pseudo-élément est déclaré en position:absolute et sera donc positionné par rapport à son premier parent lui même positionné, le grand classique.
    
Il nous faut donc déclarer les <tr> en position:relative pour qu'elles servent de référent, seulement voilà seul FireFox, à ce jour, reconnaît ce positionnement sur des éléments en display:table-xxxx et ce en dépit de la recommandation, voir Choosing a positioning scheme: 'position' property.
    
The effect of 'position:relative' on table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, and table-caption elements is undefined.
    
Il nous faut donc déclarer les <tr> en display:block, ou display:flex, ou encore changer la structure HTML mais le principe reste le même.
    
Le pseudo-élément :before est placé en arrière plan avec un z-index:-1 et fait la dimension du parent positionné. Il suffit de changer sa couleur de fond sur le :hover du parent direct et le tour est joué.
    
La <table> ne doit pas avoir de background-color.
    
Comme il n'y a plus de relation dimensionnelle entre les enfants des <tr>, il faut définir la largeur de ceux-ci.
  
Voir la discussion sur Developpez.com