I have a situation where I needed to add 1-5 rows of data (3 fields) inside a collection. I resolved it like this:
1. I added the 15 fields (5 rows x 3 fields) I needed to my collection. Using CSS I got them to display as 33% width and side-by-side.
2. I added a hidden number field with a default of 1.
3. I added a custom HTML field with two buttons, to add a row and delete a row.
4. Using Javascript, I got the add and delete row buttons to increment/decrement the hidden number field. The Javascript also disabled the add row button when the number field was 5, and re-enabled it when it was 1-4. It disabled the remove row button when the number field was 1, and re-enabled it when it was 2-5.
5. Then I used field rules to only display the fields I wanted based on the hidden number field, when it was 1, it showed fields 1-3, when it was 2, it showed fields 1-6, when it was 3, it showed fields 1-9, etc.
This isn't actually a table, but it does appear similar to a table, and this solution doesn't scale really well, and you need to know the upper limit of the inner "table". But it worked very well for my purposes.