I guess there's something missing in your implementation concerning the strict rules on creating the Grid programmatically especially in case of template columns. See the approach explained in details in the documentation here (see Creating a template columns dynamically).
By the way, have you tried the built-in GridNumericColumn? You can skip the template columns this way. See the Column Types demo with the numeric column on the second Grid:
The problem was in my class inherited from ITemplate. I was instantiated the RadNumericTextBox inside the constructor of that class, but it needed to be inside the InstantiateIn method.