for me the following C++ function does the job:
void __fastcall DeleteTreeViewNode(TTreeViewItem *node)
{ while (node->Count) // deletes recusively the node and all his descendants
DeleteTreeViewNode(node->Items[node->Count-1]); //delete the last child
delete node;
}