Algo asi???
basandonos en la idea de Juan(

) 
 Código PHP:
    response.Buffer=true
'creacion de la conexion a base de datos
StrCxn="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
StrCxn=StrCxn & server.MapPath("./bd1.mdb;")
'creacion de la variable a manejar la base
set conexion=server.CreateObject("ADODB.Connection")
'abriendo la conexion
conexion.open StrCxn
'construccion primaria de los ids
mainsqlstr="select id,familia from tabla1"
'realizando la obtencion de los ids, de las familias
set rs=conexion.execute(mainsqlstr)
'obteniendo todos los resultados
if rs.eof=false then 
    listado=rs.getrows 
end if
'cerrando el recordset
rs.close
'obteniendo todos los referentes al apellido dado
for i=0 to ubound(listado,2)
    for j=0 to ubound(listado,1)
        'listando los resultados por apellido
        %><ul><%response.Write listado(1,i)
        'construccion secundaria de todos los nombres referentes a ese apellido
        submainsqlstr="select id,nombre from tabla2 where id_tabla1=" & listado(0,i)
        set rs=conexion.execute(submainsqlstr)
        'obteniendo los nombres, creandose un arreglo vistual para cada familia
        while rs.eof=false
            'imprimiendo
            %><li><%response.Write rs.fields.item(1)%></li><%
            'hasta el ultimo por cada familia
            response.Flush()
            rs.movenext
        wend
        'cerrando la consulta
        rs.close%>
        </ul><%'hasta la ultima familia
        response.Flush()
    next
next
'liberando memoria
set rs=nothing
set conexion=nothing
redim listado(0)
set listado=nothing