è solo un problema di impaginazione:
fai un array con le iniziali:
$ini=Array('a','b',..........'z');
$output="<table>";
foreach($ini as $value){
$output.="<tr><td colspan....><a href=\"#".$value."\">[".$value."]</a></td></tr>";
$output.="<tr><td colspan....><a name=\"".$value."\"</a> Prodotti con la lettera".$value."</td></tr>";
$sql.......
query......
while(){
$output.="<tr><td>".$row['prodotto']."</td></tr>";
}
$output.="</table>";
}
Se però hai molti prodotti (migliaia) ci vuole un pò di tempo.