If keeping the Silverlight based dialog is not a requirement, you can develop a custom DelegateControl WebControl which is pinned to the placeholder AdditionalPageHead as described here https://littletalk.wordpress.com/2010/11/18/create-an-additionalpagehead-control-packed-into-a-feature-in-visual-studio-2010/
This control could contain a piece of JavaScript to disable the Silverlight dialog on the "View all site content" (viewlsts.aspx) page. SharePoint will then automatically fallback to the classic "/_layouts/create.aspx" page.
Within your WebControl you can then use C# server-side code to detect if you are on the create.aspx page and apply custom CSS to hide the lists you don't want your users have them created.
Additionally your WebControl can optionally include C# server-side code to detect if a smart user tried to navigate directly to the "/_layouts/new.aspx" page with certain querystrings to create a list directly and block access to those urls.
I've done something like this a while back to allow only certain audiences to create certain type of lists. Works like a charm.
Hope that helps!