Here's a start:
Public Sub DynamicForm()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
' Create new form and set its record source.
Set frm = CreateForm
frm.RecordSource = "Table2"
' Set positioning values for new controls.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Table1"

Dim fld As Field
For Each fld In rs.Fields
' Create unbound default-size text box in detail section.
Set ctlText = CreateControl(frm.Name, acTextBox, , "", fld.Name, intDataX, intDataY)
' Create child label control for text box.
Set ctlLabel = CreateControl(frm.Name, acLabel, , ctlText.Name, fld.Name, intLabelX, intLabelY)
intLabelY = intLabelY + 300
intDataY = intDataY + 300
Next
' Restore form.
DoCmd.Restore
End Sub