DNN friendly URLs provider simply adds value of Tab.TabPath property to resulting URL:
If (tab.TabPath <> Null.NullString) And IncludePageName Then
pathToAppend = tab.TabPath.Replace("//", "/").TrimStart("/"c) & "/" & pathToAppend
End If
In Tabs table, TabPath attributes stored without spaces, hypens and "_", in a form: //Main/SomeSection/SomeSubSection1/.
So, a simple solution doesn't exists, and you really need to write a custom friendly URLs provider...
You may use Tab.TabName property instead of Tab.TabPath (but, in that way you miss path information in URLs), or wrote some recursive alhorithm (which is slow). Another suggestion - add INSERT / UPDATE triggers on Tabs table to track ParentID, TabName and Level attribute changes, and then generate a MyFriendlyTabPath attribute value.