Tenta assim:
<ul id="nav">
<?
$consulta_rp = $conn->Execute("SELECT DISTINCT rp from tabela");
$num_consulta = $consulta_rp->RecordCount();
$controle = 0;
while ($controle < $num_consulta)
{
$rp = $consulta_rp->fields['rp'];
echo "<li><a href='#'>".$rp."</a>";
$consulta_rp->MoveNext();
$controle++;
echo "<ul>";
$consulta_est = $conn->Execute("SELECT estabelecimento from tabela where rp ='$rp'");
$num_consulta2 = $consulta_est->RecordCount();
$controle2 = 0;
echo $consulta_est;
while ($controle2 < $num_consulta2)
{
$est = $consulta_est->fields['estabelecimento'];
echo "<li><a href='#'>".$est."</a></li>";
$consulta_est->MoveNext();
$controle2++;
}
echo "</ul>";
echo "</li>"; //fechar dentro do while para abrir o menu seguinte
}
echo "</ul>";
?>
Vê o que retorna










