This does not order the pages automatically, but it does seem to work.
Here's an A7 document with 40 pages. Call the result a7-40.pdf.
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
% arara: pdflatex
\pdfminorversion=7
\documentclass[twoside]{article}
\usepackage{geometry}
\geometry{paperwidth=74mm,paperheight=105mm}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
\centering
\scalebox{30}{1}\newpage
\scalebox{30}{2}\newpage
\scalebox{30}{3}\newpage
\scalebox{30}{4}\newpage
\scalebox{30}{5}\newpage
\scalebox{30}{6}\newpage
\scalebox{30}{7}\newpage
\scalebox{30}{8}\newpage
\scalebox{30}{9}\newpage
\scalebox{10}{10}\newpage
\scalebox{10}{11}\newpage
\scalebox{10}{12}\newpage
\scalebox{10}{13}\newpage
\scalebox{10}{14}\newpage
\scalebox{10}{15}\newpage
\scalebox{10}{16}\newpage
\scalebox{10}{17}\newpage
\scalebox{10}{18}\newpage
\scalebox{10}{19}\newpage
\scalebox{10}{20}\newpage
\scalebox{10}{21}\newpage
\scalebox{10}{22}\newpage
\scalebox{10}{23}\newpage
\scalebox{10}{24}\newpage
\scalebox{10}{25}\newpage
\scalebox{10}{26}\newpage
\scalebox{10}{27}\newpage
\scalebox{10}{28}\newpage
\scalebox{10}{29}\newpage
\scalebox{10}{30}\newpage
\scalebox{10}{31}\newpage
\scalebox{10}{32}\newpage
\scalebox{10}{33}\newpage
\scalebox{10}{34}\newpage
\scalebox{10}{35}\newpage
\scalebox{10}{36}\newpage
\scalebox{10}{37}\newpage
\scalebox{10}{38}\newpage
\scalebox{10}{39}\newpage
\scalebox{10}{40}
\end{document}
Now use pdfpages to create the A4 pages:
\documentclass[a4paper,twoside]{article}
\usepackage{pdfpages,geometry}
\geometry{scale=1,marginparsep=0pt,marginparwidth=0pt,landscape}
\begin{document}
\includepdf[nup=4x2,pages={40,1,38,3,36,5,34,7, 32,9,30,11,28,13,26,15, 24,17,22,19,20,21,18,23, 16,25,14,27,12,29,10,31, 8,33,6,35,4,37,2,39}]{a7-40}
\end{document}

EDIT EDIT
Note that EDIT follows EDIT EDIT, which is logical but non-chronological.
To answer a query in comments, here is one way to add horizontal and vertical rules to divide the page evenly into quarters.
\documentclass[a4paper,twoside]{article}
\usepackage{pdfpages,geometry}
\geometry{scale=1,marginparsep=0pt,marginparwidth=0pt,landscape}
\begin{document}
\newsavebox\adrielhrule
\sbox\adrielhrule{\vrule height .2pt depth .2pt width \paperwidth}
\newsavebox\adrielvrule
\sbox\adrielvrule{\hspace*{-.2pt}\vrule height \paperheight depth 0pt width .4pt}
\includepdf[nup=4x2,pages={40,1,38,3,36,5,34,7, 32,9,30,11,28,13,26,15, 24,17,22,19,20,21,18,23, 16,25,14,27,12,29,10,31, 8,33,6,35,4,37,2,39}, picturecommand={%
\setlength\unitlength{1mm}% modified from Ignasi's answer at http://tex.stackexchange.com/a/64745/
\put(0,105){\usebox{\adrielhrule}}%
\put(148.5,0){\usebox{\adrielvrule}}%
}]{a7-40}
\end{document}

EDIT
To make this more convenient, it would be nice to have TeX figure out the page order and automatically add blank pages, if necessary, to produce a complete signature.
This solution uses expl3 and a little help from egreg to achieve just this.
\adrielbooklet[<other pdfpages options>]{<no. of pages>}{<pdf filename>}
will include the first <no. of pages> from <pdf filename>, arranging them in the appropriate order and applying <other pdfpages options>.
Complete code with examples:
\documentclass[a4paper,twoside]{article}
\usepackage{pdfpages,geometry,xparse}
\geometry{scale=1,marginparsep=0pt,marginparwidth=0pt,landscape}
\ExplSyntaxOn
\int_new:N \l_adriel_pages_int
\int_new:N \l_adriel_total_int
\int_set:Nn \l_adriel_pages_int { 1 }
\int_set:Nn \l_adriel_total_int { 1 }
\tl_new:N \l_adriel_pages_tl
\tl_new:N \l_adriel_pdfopts_tl
\cs_new_protected_nopar:Npn \adriel_pageorder:n #1
{
\int_compare:nTF
{
\int_mod:nn { #1 } { 4 } = 0
}
{
\int_set:Nn \l_adriel_total_int { #1 }
}
{
\int_set:Nn \l_adriel_total_int { #1 + 4 - \int_mod:nn { #1 } { 4 } }
}
\int_set:Nn \l_adriel_pages_int { \l_adriel_total_int - 1 }
\int_compare:nTF
{
\l_adriel_total_int > #1
}
{
\tl_clear:N \l_adriel_pages_tl
}
{
\tl_set:NV \l_adriel_pages_tl \l_adriel_total_int
}
\int_do_while:nn
{
\l_adriel_pages_int > 0
}
{
\int_if_odd:nTF { \l_adriel_pages_int }
{
\int_compare:nTF
{
( \l_adriel_total_int - \l_adriel_pages_int ) > #1
}
{
\tl_put_right:Nn \l_adriel_pages_tl { , }
}
{
\tl_put_right:Nx \l_adriel_pages_tl { , \int_eval:n { \l_adriel_total_int - \l_adriel_pages_int } }
}
}
{
\int_compare:nTF
{
\l_adriel_pages_int > #1
}
{
\tl_put_right:Nn \l_adriel_pages_tl { , }
}
{
\tl_put_right:Nx \l_adriel_pages_tl { , \int_eval:n { \l_adriel_pages_int } }
}
}
\int_decr:N \l_adriel_pages_int
}
}
\cs_new_protected_nopar:Npn \adriel_includepdf:nn #1 #2
{
\includepdf[#1]{#2}
}
\cs_generate_variant:Nn \adriel_includepdf:nn { V }
\cs_new_protected_nopar:Npn \adriel_booklet:nnn #1 #2 #3
{
\adriel_pageorder:n { #2 }
\tl_set:Nx \l_adriel_pdfopts_tl { {pages={\l_adriel_pages_tl}} }
\tl_put_right:Nn \l_adriel_pdfopts_tl { , #1 }
\adriel_includepdf:Vn \l_adriel_pdfopts_tl { #3 }
}
\NewDocumentCommand \adrielbooklet { O {} m m }
{
\adriel_booklet:nnn { #1 } { #2 } { #3 }
}
\ExplSyntaxOff
\begin{document}
\adrielbooklet[nup=4x2]{39}{a7-40}
\adrielbooklet[nup=4x2]{40}{a7-40}
\adrielbooklet[nup=4x2]{38}{a7-40}
\adrielbooklet[nup=4x2]{37}{a7-40}
\end{document}
This produces 4 booklets:

EDIT EDIT EDIT
Here's a (mostly) expl3 version with dividing lines:
\documentclass[a4paper,twoside]{article}
\usepackage{pdfpages,geometry,xparse}
\geometry{scale=1,marginparsep=0pt,marginparwidth=0pt,landscape}
\ExplSyntaxOn
\int_new:N \l_adriel_pages_int
\int_new:N \l_adriel_total_int
\int_set:Nn \l_adriel_pages_int { 1 }
\int_set:Nn \l_adriel_total_int { 1 }
\tl_new:N \l_adriel_pages_tl
\tl_new:N \l_adriel_pdfopts_tl
\cs_new_protected_nopar:Npn \adriel_pageorder:n #1
{
\int_compare:nTF
{
\int_mod:nn { #1 } { 4 } = 0
}
{
\int_set:Nn \l_adriel_total_int { #1 }
}
{
\int_set:Nn \l_adriel_total_int { #1 + 4 - \int_mod:nn { #1 } { 4 } }
}
\int_set:Nn \l_adriel_pages_int { \l_adriel_total_int - 1 }
\int_compare:nTF
{
\l_adriel_total_int > #1
}
{
\tl_clear:N \l_adriel_pages_tl
}
{
\tl_set:NV \l_adriel_pages_tl \l_adriel_total_int
}
\int_do_while:nn
{
\l_adriel_pages_int > 0
}
{
\int_if_odd:nTF { \l_adriel_pages_int }
{
\int_compare:nTF
{
( \l_adriel_total_int - \l_adriel_pages_int ) > #1
}
{
\tl_put_right:Nn \l_adriel_pages_tl { , }
}
{
\tl_put_right:Nx \l_adriel_pages_tl { , \int_eval:n { \l_adriel_total_int - \l_adriel_pages_int } }
}
}
{
\int_compare:nTF
{
\l_adriel_pages_int > #1
}
{
\tl_put_right:Nn \l_adriel_pages_tl { , }
}
{
\tl_put_right:Nx \l_adriel_pages_tl { , \int_eval:n { \l_adriel_pages_int } }
}
}
\int_decr:N \l_adriel_pages_int
}
}
\cs_new_protected_nopar:Npn \adriel_includepdf:nn #1 #2
{
\includepdf[#1]{#2}
}
\cs_generate_variant:Nn \adriel_includepdf:nn { V }
\cs_new_protected_nopar:Npn \adriel_booklet:nnn #1 #2 #3
{
\adriel_pageorder:n { #2 }
\tl_set:Nx \l_adriel_pdfopts_tl { {pages={\l_adriel_pages_tl}} }
\tl_put_right:Nn \l_adriel_pdfopts_tl { , #1 }
\adriel_includepdf:Vn \l_adriel_pdfopts_tl { #3 }
}
\NewDocumentCommand \adrielbooklet { O {} m m }
{
\adriel_booklet:nnn { #1 } { #2 } { #3 }
}
\box_new:N \l_adriel_hline_box
\box_new:N \l_adriel_vline_box
\hbox_set:Nn \l_adriel_hline_box { \vrule height .2pt depth .2pt width \paperwidth }
\hbox_set:Nn \l_adriel_vline_box { \hspace*{-.2pt} \vrule height \paperheight depth 0pt width .4pt }
\NewDocumentCommand \adrielhrule { }
{
\box_use:N \l_adriel_hline_box
}
\NewDocumentCommand \adrielvrule { }
{
\box_use:N \l_adriel_vline_box
}
\ExplSyntaxOff
\begin{document}
\adrielbooklet
[nup=4x2,
picturecommand={%
\setlength\unitlength{1mm}% modified from Ignasi's answer at http://tex.stackexchange.com/a/64745/
\put(0,105){\adrielhrule}%
\put(148.5,0){\adrielvrule}%
}%
]{40}{a7-40}
\end{document}

geometrya custom paper as it doesn't know about A7. (See below.) – cfr Aug 05 '16 at 03:33