The per-item testing should be performed when setting the item, rather than in the header, since the filter are set globally. From the csvsimple
documentation:
\csvfilterreject
All following data lines will be ignored. This command overwrites all previous filter settings.

\documentclass{article}
\usepackage{csvsimple,filecontents}% http://ctan.org/pkg/{csvsimple,filecontents}
\begin{document}
\begin{filecontents*}{chunk.csv}
AAAA,aaaaa
BBBB,bbbbb
CCCC,ccccc
DDDD,ddddd
EEEE,eeeee
FFFFF,fffffff
GGGGG,ggggg
HHHHHH,hhhhh
\end{filecontents*}
\begin{itemize}
\csvreader[no head]{chunk.csv}{}{\ifnum\value{csvrow}<4\relax\item \csvcoli, \csvcolii\fi}
\end{itemize}
\hrulefill
\begin{itemize}
\csvreader[no head]{chunk.csv}{}{\ifnum\value{csvrow}=4\relax\item \csvcoli, \csvcolii\fi}
\end{itemize}
\hrulefill
\begin{itemize}
\csvreader[no head]{chunk.csv}{}{\ifnum\value{csvrow}>4\relax\item \csvcoli, \csvcolii\fi}
\end{itemize}
\end{document}
Low-level conditionals are used to (not) print each item, testing the value of csvrow
.
Here is an alternative option using datatool
. The interface is very similar, and the transition should therefore not be a problem:

\documentclass{article}
\usepackage{datatool,filecontents}% http://ctan.org/pkg/{datatool,filecontents}
\begin{document}
\begin{filecontents*}{chunk.csv}
AAAA,aaaaa
BBBB,bbbbb
CCCC,ccccc
DDDD,ddddd
EEEE,eeeee
FFFFF,fffffff
GGGGG,ggggg
HHHHHH,hhhhh
\end{filecontents*}
\DTLloaddb[noheader,keys={first,last}]{chunk}{chunk.csv}
\begin{itemize}
\DTLforeach{chunk}{\First=first,\Last=last}{\ifnum\value{DTLrowi}<4\relax\item \First, \Last\fi}
\end{itemize}
\hrulefill
\begin{itemize}
\DTLforeach{chunk}{\First=first,\Last=last}{\ifnum\value{DTLrowi}=4\relax\item \First, \Last\fi}
\end{itemize}
\hrulefill
\begin{itemize}
\DTLforeach{chunk}{\First=first,\Last=last}{\ifnum\value{DTLrowi}>4\relax\item \First, \Last\fi}
\end{itemize}
\end{document}
Low-level conditionals are used to (not) print each item, testing the value of DTLrowi
.
\thecsvrow<4
should (intuitively) only print 3 rows while it actually prints 2. You should use\value{csvrow}<4
instead. – Werner Dec 6 '13 at 22:46