Here’s a way:
https://public.getgrist.com/71GRe6EuiRtm/Combined-Tables/m/fork
It uses a trick. What you want is to have a summary row for every value in a certain column of the first table (column A in the example), and of the second (column OtherA in the example). The example creates a helper table with a single row, which builds a set of unique values from A and from OtherA, and uses Python to get the union of these sets.
The rest of the trick is to turn this resulting list of values to column type ChoiceList, and create a summary by that. When summarizing a ChoiceList, you get a row for each value in the list.
Once you have this table, regular lookupRecords formulas can be used to find the corresponding rows in each table.