Bueno lo he conseguido gracias a un codigo viejo de mi IDOLO GatorV... aca coloco el resultado para las personas que tengan dudas parecidas.
Código PHP:
<?php
$conexion = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('prog_db');
$sqlQuery = mysql_query("select * from tbl_tipo_perfil as perfil inner join tbl_tipo_sub_perfil as subperfil ON perfil.tp_codigo = subperfil.tp_codigo", $conexion) or die(mysql_error());
$categoria = "";
$categorias = array();
$pos = 0;
while ($row = mysql_fetch_object($sqlQuery)){
if($categoria != $row -> tp_nombre){
$categoria = $row -> tp_nombre;
$pos = array_push( $categorias, array( $categoria, array() ) );
}
$categorias[$pos][1][] = array( $row->tsp_codigo, $row -> tsp_nombre );
}
foreach ($categorias as $categoria)
{
if( !empty( $categoria[0] ) ) {
echo "<h1>" . $categoria[0] . "</h1>";
}
if (count($categoria[1]) > 0)
{
echo "<ul class='sidemenu'>";
foreach ($categoria[1] as $subCat)
{
echo "<li><a href='index.php?mod=categoria&categoriaID=" . $subCat[0] . "'>" .
$subCat[1] . "</a></li>";
}
echo "</ul>";
}
}
?>