I think I understand what you are talking about.
It is sort of reminiscent of a Forum, where you have a main topic, and then replies to that. The output of this is going to be different of course, but the basics are the same.
I think you may have to add another field in there, like link_type that would specify whether the row was a Main Category, a Sub Category, or just a Link. Then you execute something like the following:
$Main_query = "SELECT * FROM table WHERE link_type="Main Category";
$Sub_query = "SELECT * FROM table WHERE link_type="Sub Category";
while ($Row = mysql_fetch_array(mysql_query($Main_query)))
{
print ("<b>Name:</b> $Row[link_name]<br><bDescription</b> $Row[link_description]");
while ($Row2 = mysql_fetch_array(mysql_query($Sub_query)))
{
print ("<|____><b>Name:</b> $Row[link_name]<br>");
}
}
I have experimented with nested while()'s once before and it took a LOT of processing. So you may have to substitute it with for() or change your system a little so that they aren't nested.
Also when you put stuff in your follow field, you may want to input like "Self" on main categories or something. I know that I did when i made my forum, but that was a longgggg time ago and I don't remember exactly why I did it. lol so...
Hope I've been of a little help.