Here's the Power Query that worked for me (for your scenario replace "yourdomain.yourenvironment.dynamics.com/data" with your URL and {"table1", "table2", "table3"} with the actual list of tables prepared in advance in Excel):
let
Source = OData.Feed("yourdomain.yourenvironment.dynamics.com/data"),
GetAllTables = (tableList) =>
let
GetTableColumns = (tableName) =>
try
let
tableData = Source{[Name=tableName, Signature="table"]}[Data],
columnNamesList = Table.ColumnNames(tableData),
concatenatedColumnNames = Text.Combine(columnNamesList, ", "),
resultTable = #table({"Table", "Columns"}, {{tableName, concatenatedColumnNames}})
in
resultTable
otherwise
#table({"Table", "Columns"}, {}),
allTables = List.Accumulate(tableList, #table({"Table", "Columns"}, {}), (state, current) => Table.Combine({state, GetTableColumns(current)}))
in
allTables,
TableList = {"table1", "table2", "table3"}, // Add your table names here
Result = GetAllTables(TableList)
in
Result