I was looking into this yesterday also, and I found some stuff that may be useful to you, but did not post them yet, because I simply did not have experience with those specific methods I found yet, and did not have a working code example to share yet either. So I was going to wait and see if someone else that has already used these methods several times before might offer better advise/guidance.
We apparently have the ability to create and add other BrowserPane objects to the BrowserPanes collection of a document. And one of those methods (BrowserPanes.AddTreeBrowserPane) is specifically for adding a tree browser, similar to the existing Model browser pane. But these tools seem to require some input that would normally be associated with something like an add-in (ApplicationAddIn), such as 'ProgID', or 'CLSID', or different icons for use in different statuses. When use that AddTreeBrowserPane method above, it is asking for a unique name, a unique internal name which would usually be somehow associated with the add-in, and a BrowserNodeDefinition for the 'top node' of the new browser pane. So, before we can use that method, we must first have those three things prepared. There is another method defined under the BrowserPanes collection object called BrowserPanes.CreateBrowserNodeDefinition, which will return a new ClientBrowserNodeDefinition, which I assume we could use as input for that first method. That method requires at least the first 3 inputs be specified, and optionally 4 more inputs. It says that the ID (an Integer) you supply must uniquely identify this one ClientBrowserNodeDefinition among all others that may be present within that same document. I am not sure, but that may require looping through all others, and checking their ID's first, then determining an ID that is different from all the others. The third input in this method is a ClientNodeResource type object. This is apparently a Document level resource that can contain specifications that can be shared with all other tree type browser panes in that same document. The main collection of these ClientNodeResources can be found just under the BrowserPanes collection object (BrowserPanes.ClientNodeResources property). That collection object also lets you add a new one, if needed (ClientNodeResources.AddNodeResource), which will return the newly added ClientNodeResource object. That method asks for add-in related information (ClientID, ID, & IconName), and apparently the IconName must specify an icon within a ClientResourceMap, but it also says that you can provide an empty String, then it will just attempt to use the 'default' icon. The trail of uncommon API objects and methods behind this process just keeps going, and would require some additional research and testing to familiarize yourself with all the stuff involved. But since this is not really something that I plan on using any time soon, I will leave that additional research and development to you and the others here on the forum with more add-in related experience than I currently have.
Wesley Crihfield

(Not an Autodesk Employee)