Hola Javier,
Estos TextBox de los que hablas se generan a partir de algun modelo de datos dinámico?, en ese caso tendrías que crear algun ListView, ListBox, o GridView, asociado a tu ItemsSource que sería la fuente de los datos, y agregar el TextBox como parte del DataTemplate,
así se te genarían dinamicamente. (ten en cuenta que los objetos que bindees a tu ListView sea de tipo ObservableCollection)
Para elimianr un TextBox lo que podrías hacer es generar un evento que al hacer click tome el DataContext del elemento clickeado, una vez que tengas el objeto ya puedes eliminarlo de manera sencilla si es que lo haz declarado como un ObservableCollection,
es lo mismo si quieres eliminarlos todos, simplemente tomas el ObservableCollection y lo instancias de nuevo para que se vacíe.
Por otro lado, si lo que buscas en tener una vista estática, es decir que los textbox siempre seran los mismos, lo que puedes hacer es declararlos en tu XAML, y programar el evento click para que tome tu textbox (ej: tb_Producto1) y le setees la propiedad
Visibility a Collapsed, ej: tb.Producto.Visibility = Visibility.Collapsed;
eso hará que tu textbox desaparezca.
Si te puedo ayudar por favor dimelo y con gusto lo hago, saludos!