You can create new elements from Lua code via the window manager. Either by creating everything from scratch and setting all the values manually, or by using xml templates. However, you can never destroy a control once it has been created. That's why you should absolutely use a control pool and reuse them when you do any dynamic allocations like that.
You can find more information in
part 6 and
part 7 of the simple notebook tutorial.