1st question:
"Do what?"
I am subclassing Ctrl as SCtrl,
and i would like to use it - like it's written - in Array<SCtrl> sctrl;
sctrl.Add();
However you are doing sctrl.Create<Button>(). Not sure what you expect THAT to do. In any case, as Button does not have SCtrl as base class, you cannot do that.
Anyway, if your aim is to mix Button and SCtrl in the Array, just use