As mysites use self service site creation to automatically create sites when a user first navigates to them, it is not recommended to use Host Named Site Collections for user's mysites.
This is because you either need to pre-create all mysites (and then manually create sites for new users) using powershell, or use custom code to manage the provisioning process. This could quickly become a maintenance nightmare, and will have a higher cost of development and support.
Of course, you can use a combination of HNSC and PBSC. So you could, say, have My sites and your intranet in the same web application, and have the intranet use HNSC, while My sites use PBSC.
For a content type hub, you create the site as you would a team site using HNSC.
To create a Hostnamed Site Collection (applies to all, including Mysites and content type hubs), use the -HostHeaderWebApplication parameter of New-SPSite in PowerShell.
So, for example (let's say we have a contoso web application):
PS> New-SPSite 'http://intranet.contoso.com' -HostHeaderWebApplication 'http://contoso’ -Name 'Intranet'
There are more details (including a detailed example) at this technet article.