onCreate is a procedure that is called by constructor, some point of its code. It's same thing with destructor. Sometimes it is difficult to know exactly what happens before and after, but normally it makes no real difference.
Constructor
... Some internal code, maybe loading component information from .lfm resource ...
-> onCreate()
... Some internal code ...
When you are inheriting basic component, for example TNewButton = class(TButton), your only option is to override the constructor. onCreate/onDestroy events are just handy tools made for few LCL classes.