create category and subcategory menu on the left sidebar
Views Tree would be worth trying.  
Toggling of leaf terms can be handled by javascript.  
To show content, you can declare ajaxified menu callbacks, which simply takes tid as argument and replace a certain section of DOM with the server reponse.