Tables/Join can do the Job - use as match specification Cartesian Join:
The column names in both tables should differ from each other, otherwise the name of the source table will be added to the column name.
dt1 = New Table( "dt1",
Add Rows( 3 ),
New Column( "Column 1", Character, Set Values( {"A", "B", "C"} ) ),
New Column( "Column 2", Set Values( [1, 2, 3] ) ),
New Column( "Column 3", Set Values( [1, 2, 3] ) )
);
dt2 = New Table( "dt2",
Add Rows( 3 ),
New Column( "Column 4",
Character,
Set Values( {"X", "Y", "Z"} )
)
);
dt1 << Join(
With( dt2 ),
Cartesian Join
);