Table of contents without title

The article document class defined \tableofcontents as

\newcommand\tableofcontents{%
    \section*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \@starttoc{toc}%
    }

This prints both the \contentsname as a \section* and marks the headers, after which it typesets the actual ToC (via \@starttoc{toc}). If you forego the header adjustments, merely renewing the \tableofcontents command to

\renewcommand{\tableofcontents}[1][\contentsname]{%
  \section*{#1}
  \begin{multicols}{2}
    \@starttoc{toc}
  \end{multicols}
}

would suffice. This typesets a \section* with the contents name provided as an optional argument (default is \contentsname, which is Contents in article). Afterwards, if starts a two-column multicol environment and inserts the ToC. Here's a minimal example:

enter image description here

\documentclass{article}
\usepackage{multicol}% http://ctan.org/pkg/multicol
\makeatletter
\renewcommand{\tableofcontents}[1][\contentsname]{%
  \section*{#1}
  \begin{multicols}{2}
    \@starttoc{toc}
  \end{multicols}
}
\makeatother
\begin{document}
\tableofcontents[Table of Contents]
\section{First section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\section{Second section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\section{Last section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\end{document}​

For a ToC in multiple columns you can simply use the multitoc package.

\documentclass[11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=1in]{geometry}
\usepackage[toc]{multitoc}
\usepackage{blindtext}

\begin{document}
  \tableofcontents

  \Blinddocument
\end{document}