there are several ways to change look and feel of the module.
1. You can implement custom css selector class and change appearance of the module with css classes (Maybe the easiest way)
2. You can use the "Two markup files on code behind" technique.
2.1 Tell your class that it is templated, in Constructor (IsTemplated = true;)
2.2 Create a folder for your module in "App_Templates/YourThemeName/ModuleName" and set "ControlSpecificTemplateSubPath" property of the module to "ModuleName"
2.3 Create a UserControl inside that folder, and use ActionBox template as an example
<%--Note: This ID is hard-coded--%>
2.4 Put as many as you want UserControls with all sorts of layouts inside the markup
2.5 Now you can load your templated layout with combination of „TemplateFullVirtualPath“ and „Template“ properties of BasePart
2.6 Now you need to put all of your controls dynamically to panels / content place holders