This requires some LaTeX plumbing work. A few tricks:
First, use tabularx as suggested to stretch the columns automatically as the size of the table changes.
- Use a smaller font size, such as :font \scriptsize
- Enlarge the table horizontally (for example: :width 0.8\paperheight)
- Put the page in landscape with the "pdflscape" package: wrap the table with "#+BEGIN_landscape ... #+END_landscape" and change :width to \paperheight
- Use package "graphicx" and wrap the table in "#+LATEX: \resizebox{0.8\paperheight}{!}{ ... #+LATEX: }" to make the whole table smaller
An example of the above in Org syntax (remember to call the necessary packages):
#+BEGIN_landscape
#+ATTR_LATEX: :options [htbp]
#+BEGIN_table
#+BEGIN_center
#+LATEX: \resizebox{0.8\paperheight}{!}{
#+CAPTION: A big table made small
#+BEGIN_threeparttable
#+ATTR_LATEX: :center nil :environment tabularx :width \paperheight :align XXXXXXXX :font \scriptsize :booktabs t
...
#+ATTR_LATEX: :options [flushleft]
#+BEGIN_tablenotes
\item[] Source: Someone on the Internet.
#+END_tablenotes
#+END_threeparttable
#+LATEX: }
#+END_center
#+END_table
#+END_landscape