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