How to expand a table's width over the page margins?

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]))