The pdfpages
package provides exactly this functionality.
Assume that you have a document that has been created in LaTeX on A6-sized paper (the example below creates a 29-page document, mya6doc.pdf
say):
\documentclass{book}
\usepackage[english]{babel}%
\usepackage[a6paper]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\chapter{First chapter} \lipsum[1-10]
\chapter{Second chapter} \lipsum[11-20]
\chapter{Third chapter} \lipsum[21-30]
\chapter{Final chapter} \lipsum[31-40]
\end{document}
Now create another document mya4doc
using the following:
\documentclass{article}
\usepackage[english]{babel}%
\usepackage[a4paper]{geometry}% http://ctan.org/pkg/geometry
\usepackage{pdfpages}% http://ctan.org/pkg/pdfpages
\begin{document}
\includepdf[pages=-,nup=2x2,frame,noautoscale]{mya6doc}%
\end{document}
pdfpages
options allow for the inclusion of all pages (pages=-
) in a 2x2 nup format (nup=2x2
) with a border1 around each page (frame
). Also, pages are left unscaled (noautoscale
).

The default is to print pages using a row-first ordering. The can be modified to print using a column-first ordering3 by adding the option column
:

Note that in the above example, nup=2x2
was used since A6 is 1/4 of A4. Therefore, the inserted pages remain exactly A6 and snugly fit side-by-side on A4. However, it is also possible to put 6 A6 pages on a A4 sheet, since pdfpages
automatically scales the input pages to fit on the output pages (or any number2 for that matter). The inserted pages will be reduced in size accordingly. For example, modifying the above to
\includepdf[pages=-,nup=2x3,frame,delta=2cm 0]{mya6doc}%
produces a 3x2 layout with a horizontal gap of 2cm between the inserted pages (and zero vertical gap):

The package documentation provides the rest of the options.
1 Satisfies your first request.
2 Satisfies your second request.
3 Satisfies your third request.