Как сказал @TheWandered, вам, вероятно, следует использовать RecyclerView.
Но если по какой-то причине это не вариант, вот как вы можете это сделать:
Во-первых, вам нужно будет сгенерировать ID для каждого TextView, чтобы вы могли настроить ограничения, а затем:
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.connect(text_view_id,ConstraintSet.TOP, previous_text_view_id,ConstraintSet.BOTTOM,0);
// is equal to "layout_constraintTop_toBottomOf="previous_text_view_id"
constraintSet.applyTo(constraintLayout);