You can use the double eval trick in InfoPath. I recently used it to make a comma delimited list of the second column in my repeating table. If you are trying to make a list like you have shown (first of every column) from all the data in a repeating table, I do not believe this can be done without code.
A link to a guide on how to use the double eval trick is here at msdn.microsoft.com. Although this example uses email addressees as the subject, it will work for your repeating table.
eval(eval([Named Repeating Table], "concat(my:Field, ';')"), "..")
I've adapted the function for you. Essentially, make a new text box, and set the default value to this function. Then, as you can see, you can "Insert Field" of your repeating table where [Named Repeating Table] is. "my:Field" Must be typed manually, and must correspond to your named field inside the repeating table. This text box will produce a result like:
First Entry;Second Entry;Third Entry;Fourth Entry;
If you want to format the way it produces the entries in the text box, for example adding a space in between each entry, simply edit this portion here:
Where, for example, if you wanted a comma instead of a semicolon, and a space afterwards it would look like:
"concat(my:Field, ', ')"
Now, this of course, is for one text box. You would need to do this for every text box, and promote those text boxes too.
Now, I'm not sure how this would apply to your email, but if you were to include the whole repeating table, it would look like:
If you were to include each promoted text box in your email.
Unfortunately due to the nature of repeating tables, without code, you cannot simply pluck a row at a time (except for the first row, using the first function.) so this is the only solution to obtain the data from your repeating table. You could, perhaps, format the text boxes a little better for visibility, like using a different character such as | to separate the values, and adding a space after the character.