The standard list structures (itemize and enumerate) is made up as a \list. At the start of this \list, a condition \@newlist is set to true (via \global\@newlisttrue). This separates the first item from the rest in terms of the vertical space inserted. Here's an extract from the conditioning within \@item in latex.ltx:
\if@newlist
\if@nobreak
\@nbitem
\else
\addpenalty\@beginparpenalty
\addvspace\@topsep
\addvspace{-\parskip}%
\fi
\else
\addpenalty\@itempenalty
\addvspace\itemsep
\fi
So, based on this, \itemsep is only inserted if we're not \@newlist.
Using etoolbox one can now patch \@item and modify \addvspace\itemsep to insert a "decoration":

\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/xpatch
\begin{document}
\noindent%
\begin{minipage}{.45\linewidth}
\begin{enumerate}
\item An item with descender p
\item An item without descenders
\item abcdefghijklmnopqrstuvwxyz
\end{enumerate}
\end{minipage}
%
\makeatletter
\patchcmd{\@item}
{\addvspace\itemsep}
{\par\kern\dimexpr.7\itemsep-.7\parskip-.7\baselineskip\relax%
\hrulefill%
\par\kern\dimexpr.3\itemsep-.3\parskip-.3\baselineskip\relax}
{}{}%
\makeatother
%
\begin{minipage}{.45\linewidth}
\begin{enumerate}
\item An item with descender p
\item An item without descenders
\item abcdefghijklmnopqrstuvwxyz
\end{enumerate}
\end{minipage}
\end{document}
On the left is a regular list, while the right shows the same list with the modified \itemsep.
If you want the \hrulefill to stretch the entire \textwidth (rather than \linewidth), you can use
\makeatletter
\patchcmd{\@item}
{\addvspace\itemsep}
{\par\kern\dimexpr.7\itemsep-.7\parskip-.7\baselineskip\relax%
\hspace*{\dimexpr-\itemindent-\labelwidth-\labelsep}\hrulefill%
\par\kern\dimexpr.3\itemsep-.3\parskip-.3\baselineskip\relax}
{}{}%
\makeatother
which corrects for the \itemindent, \labelwidth and \labelsep inserted in the list.
The choice of a 70%/30% skip across the horizontal rule is somewhat arbitrary, but based on the definition of \strutbox. Together, they make up the entire \itemsep.