I would use a combination of a table, anchored text frames, and Auto-Size.

First, I created an empty text frame and inserted a table (1 column, 3 rows; no strokes.) I set the cells to be At Least .0417″ with .0556″ top and bottom insets. Changing the top and/or bottom inset values will increase or decrease the amount of space between the text frames.
Second, I created my first text frame, and in the Text Frame Options, I selected Auto-Size: Height Only, expand/contract on the bottom of the frame.
Then, I selected that entire frame and cut it. Then, using the text tool, I put my cursor in the top cell of my table and pasted the text frame. This makes the text frame an anchored object within that cell.
Finally, I made two more text frames and put them as anchored objects in the next two cells.
The Auto-Size function of the text frames will allow them to expand/contract as you type/delete text. The table cells will likewise expand/contract as each text frame gets larger or smaller.
This actually allowed me to do some interesting things with the anchored object text frames. When I rotated one so that it was taking up more vertical space, the cell that was holding it expanded, maintaining the correct amount of space between frames.

However, things started to fall apart when I went into the Anchored Object Options and set its position to “Custom.” This allowed me to drag the text frame outside of the visible boundaries of the table… but the cell stopped reacting to the size of the text frame.