Here is one way using the forloop package which implements an elementary nested/recursive for loop using counters. Given some counter <cnt>, the interface
\forloop[<step>]{<cnt>}{<start>}{<condition>}{<loop content>}
initializes <cnt> to <start> and executes <loop content> until <condition> is met. An optional first parameter <step> (default is 1) can be set to modify the counter step size:

\documentclass{article}
\usepackage[margin=2cm,a4paper]{geometry}% http://ctan.org/pkg/geometry
\usepackage{forloop}% http://ctan.org/pkg/forloop
\usepackage{pst-barcode}% http://ctan.org/pkg/pst-barcode
\pagestyle{empty}% No page headers/footers
\begin{document}
\setlength{\baselineskip}{2cm}%
\newcounter{qrcodesA}\newcounter{qrcodesB}%
\forloop{qrcodesA}{0}{\value{qrcodesA}<12}{% Rows
\noindent%
\forloop{qrcodesB}{0}{\value{qrcodesB}<9}{% Columns
\psbarcode{tex.stackexchange.com}{}{qrcode}\hspace{2cm}}\hspace*{\fill}\\%
}%
}
\end{document}
Using \psbarcode directly creates a dimensionless object (width and height of 0pt). The spacing of 2cm is arbitrary, as is the setting for \baselineskip. You can modify this to suit your scissor-cutting expertise.
This requires a latex->dvips->ps2pdf or xelatex compilation sequence.