Its certainly feasible - I've been able to replicate some of this functionality before, but might have had a slightly different purpose. I'd start exploring with some of the Asset REST APIs
If the activity UI sits outside of CloudPages/MC you might be able to explore some templating packages and languages that bring this together more neatly.
If you're restricted to using Cloudpages for the UI then you might have to get a bit clever with Single-Page Application principles paired with SSJS and/or AMPScript to achieve the same.
You can probably achieve what you're after with the below REST API's to retrieve and render the data:
Get the Folders in the BU (You'll need some logic to expose the correct directory structure):
https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/getCategories.htm
Query and Retrieve the Templates to display back (Pass the CategoryId based on the selected folder as part of your condition):
https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/assetAdvancedQuery.htm
https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/assetSimpleQuery.htm
From experience, theres an attribute in the retrieve calls that provides you the raw HTML to render but you might have to get a bit clever if you want to render with personalization as part of your custom activity