Firstly, unless this is an older version of Access, I don't think your limit of 20M is accurate.
If I remember correctly, even Access 97 hada a limit of 100MB, but my memory may be flawed on the specifics, but I am reasonably sure it was higher than 20MB.
Regardless of that, you do not add columns to a table with a query.
You can populate EXISTING columns in a table with an UPDATE query, but you physically add the columns to the table by opening the table in design view.
Once you have the columns added to the table, you can then populate the new columns by building appropriate UPDATE queries.
NOTE: You must use UPDATEABLE QUERIES to populate these columns. In other words, the queries you use can not be, or sources from CROSSTAB, GROUP BY, or include other summary calculations.
All this being said, if in fact you're bumping up against a size ceiling, you're risking corrupting the entire table if you try to trick the database into adding data via adding columns instead of a seperate table.
I would seriously consider breaking table up based on some criteria relevant to your data.
You can easily store parts of your data in seperate databases, and then LINK to the tables from another database.
For example, break your table up based on yearly or quarterly data.
Name these housing databases something like 2007_Quarter_1, 2007_Quarter_2, etc.
Then, in a totally seperate database, link to the tables in the other databases and work with the data from there.
Alternately, since that can be somewhat of a burden (although managable), I do know that Access 2003 has a 2GB ceiling. That might allow you room to grow for quite some time before you start reaching the ceiling.