Here is the solution I have found:
<body>
<div id="mydiv" style="width:100;overflow:auto;background-color:#eeeeee;"
onscroll="scroll(this)">
<table id="tblobjest1" class="lst" cellspacing="0" cellpadding="0"
<tr id="row"><td>Row 1</td></tr>
<tr><td>Row 2</td></tr>
<tr><td>Row 3</td></tr>
<tr><td>Row 4</td></tr>
<tr><td>Row 5</td></tr>
<tr><td>Row 6</td></tr>
<tr><td>Row 7</td></tr>
<tr><td>Row 8</td></tr>
<tr><td>Row 9</td></tr>
<tr><td>Row 10</td></tr>
<tr><td>Row 11</td></tr>
<tr><td>Row 12</td></tr>
<tr><td>Row 13</td></tr>
<tr><td>Row 14</td></tr>
<tr><td>Row 15</td></tr>
<tr><td>Row 16</td></tr>
<tr><td>Row 17</td></tr>
<tr><td>Row 18</td></tr>
<tr><td>Row 19</td></tr>
<tr><td>Row 20</td></tr>
</table>
</div>
<script language='javascript'>
var realLastScrollTop = 0;
var currentLastScrollTop = 0;
var nbLines = 4;
// init the "table" height
document.all['mydiv'].style.height = document.all['row'].clientHeight
* nbLines;
function scroll(o) {
var cellHeight = document.all['row'].clientHeight;
if (currentLastScrollTop == o.scrollTop) {
// scroll action is stabilized
if (realLastScrollTop < o.scrollTop) {
o.scrollTop = (parseInt(o.scrollTop/cellHeight)+1)*cellHeight;
}
else {
if (o.scrollTop > (nbLines -1 * cellHeight)) {
o.scrollTop = parseInt(o.scrollTop/cellHeight)*cellHeight;
}
}
realLastScrollTop = o.scrollTop;
}
currentLastScrollTop=o.scrollTop;
}
</script>