You can use pad with negative lengths to “bypass” the margins:
#set page(margin: (x: 5em))
#lorem(20)
#figure(table(
columns: (1fr,) * 4,
..([abcabcabcabc],)*4*3
), caption: [Short table])
#pad(x: -4em, figure(table(
columns: (1fr,) * 4,
..([abcabcabcabc],)*4*3
), caption: [Long table]))
