I don't know if I understand fully what you mean by "having to pre-define the number of rows" (did you mean to write columns?). As long as you know, for instance, that the table should contain a left-justified header column and n centered data columns -- with all columns separate by vertical lines, according to the example you give -- the following will work without too much setup cost (I'll assume that n = 10):
\begin{table}
\caption{An easily defined tabular environment} \label{tab:easy}
\begin{tabular}{|l*{10}{|c}|}
...
\end{tabular}
\end{table}
Addendum: Suppose that the table (other than the first or header row) will be filled with a datatool and that you don't know in advance the exact number of data columns. However, as long as you know the maximum possible number -- say, 15 -- you can set up the tabular environment with that information. I.e., you'd set \begin{tabular}{|l*{15}{|c}|}. If the actual table ends up containing, say, only [!] 12 data columns, no harm was done by having specified an excessive number of centered columns.
l | l | l, etc? – Alenanno Mar 31 '12 at 21:05