For your first question, I think using the following default value formula for the field should work:
../preceding-sibling::my:repeatingGroupName/my:fieldName
I'd also suggest disabling the control using the condition preceding-sibling::my:repeatingGroupName, so that people can only modify the first row.
For the second question, is there a predetermined maximum number of rows for the table? If so, I think the best option may be to disable the add/remove rows functionality, use the Default Values dialog to give the group the maximum number of rows, and then use conditional formatting to hide rows based on the dropdown selection:
Condition: count(preceding-sibling::repeatingGroupName) => maxRowsField