Think of Atlas as a data repository that stores data in the form you specify. Given this, it is possible to define types using model JSONs or using Type REST calls.
Thus, custom types are types you define that are different from what are available to you out of the box.
To define your own times, you can use the existing models as guidance and proceed from there. The v2 API and data models have simplified the process.
Hope this helps.