I don't think there's any kind of site you *can't* make with Django. It's a Web framework, not a CMS.
It's definitely possible (and trivial) to offer a wide variety of templates. It's also possible to allow a user to customize and save a template, but that comes with a whole host of security risks you'll have to consider.
The CSS is a slightly different matter, as Django is not in the business of serving static content. However, if you're already customizing HTML templates you can customize some CSS there. For that matter, you could allow them to change the CSS link in the template to one of many choices you provide, or to their own server/CDN. Again, that's probably a bad idea for various security reasons, although technically possible.