Try to use a report which will sort records of the same project and export the report to send it in PDF format.
I agree with bertrand's suggestion. If you use a Report style layout, using the Project_subevents table (list mode), then you just have to search for all the relevant subevents.
You can also add layout parts "Sub-summary when sorted by" (Edit Layout > Layouts Menu > Part Setup > Create...), then sort the report by Projects to show that layout part. If you select "Page break before each occurrence" in the Part Definition, then you can search for all updated project sub-events, sort them by Project, and it will spit out a multi-page report with one page per project listing all the updated subevents.
I'm assuming that you didn't go the PDF route here because you wanted this text in the body of your email. There are two approaches that can be used to do that: List and ExecuteSQL.
With list, you have to do the labeling/grouping in the subevent table in a calculation field that returns text. You then list that field to get rows of data from the subevent table.
ExecuteSQL on the other hand supports using both field separator text and text concatenation in the list of selected fields as a way to produce the same result without the need for the extra calculation field in the child table.