Posto il modo in cui ho risolto il problema per eventuali aiuti.

praticamente nel ciclo che carica i record ho creato una variabile chiama y_mouse che incremento via asp ad ogni ciclo in base all'altezza del <tr> dove dovrebbe comparire il menu (la posizione left invece l'ho lasciata invariata in quanto non crea problemi).

in poche parole ho questo in ASP (php è uguale cmq il sistema):

y_mouse = 10

Do While Not rs.Eof
<tr>
<td><a href="#" onContextMenu="return MenuTxDx('<%=y_mouse%>')">
Cliccami con il tasto destro </a>
</td>
</tr>
y_mouse = y_mouse + 10
rs.movenext
Loop

mentre in javascript ho cambiato cosi':

function MenuTxDx(y_mouse)
{
var sinistra = window.event.x;
var sopra = y_mouse;
menu.style.display = "";
pos.style.left = sinistra;
pos.style.top = sopra;
return false;
}

in modo che lo script non calcoli in automatico l'asse y del mouse, ma la prenda da un calcolo fatto da asp.

Grazie cmq a tutti, ciao