The following provides a consistent spacing - you have to make to use the same code for vertical spacing:

\documentclass{article}
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\newcolumntype{Y}{>{\centering\arraybackslash}X}
%----------
% Sections
%----------
\newcommand{\mysec}[2][2]{%
\LARGE\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\bigskip
}
\newcommand{\mysubsec}[2][3]{
\Large\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\medskip
}
\newcommand{\mysubsubsec}[2][4]{
\small\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\smallskip
}
\begin{document}
\mysec{\bfseries Heading}
\mysubsec{\bfseries Subheading 1}
\mysubsubsec[3]{%
{\bfseries Title 1} \par Description 1 &
{\bfseries Title 2} \par Description 2 &
{\bfseries Title 3} \par Description 3
}
\mysubsec{\bfseries Subheading 2}
\mysubsubsec{%
{\bfseries Title 4} \par Description 4
}
\mysubsec{\bfseries Subheading 3}
\mysubsubsec[2]{%
{\bfseries Title 5} \par Description 5 &
{\bfseries Title 6} \par Description 6
}
\end{document}
I've used a full-width tabularx which puts a number of Y-columns (defined as centred X-columns). \mysec is followed by \bigskip, \mysubsec by \medskip and \mysubsubsec by \smallskip. This provides some form of consistency. You could use the same for all.
If you want to stick to multicol, using a 3-column layout for the 1-column usage is also possible:

\documentclass{article}
\usepackage{multicol}% http://ctan.org/pkg/multicol
\begin{document}
\noindent\hrulefill\smallskip
\begin{multicols}{3}
\centering {\bfseries Title 1} \par
Description 1 \par
\columnbreak
{\bfseries Title 2} \par
Description 2 \par
\columnbreak
{\bfseries Title 3} \par
Description 3
\end{multicols}
\smallskip\noindent\hrulefill\smallskip
\begin{multicols}{3}
\mbox{} \par \mbox{} \par
\columnbreak
\centering {\bfseries Title 4} \par
Description 4
\end{multicols}
\smallskip\noindent\hrulefill\smallskip
\begin{multicols}{2}
\centering {\bfseries Title 5} \par
Description 5 \par
\columnbreak
{\bfseries Title 6} \par
Description 5
\end{multicols}
\smallskip\noindent\hrulefill
\end{document}
Title 1,Title 2andTitle 3: will there be three-column text below that that should break across the page boundary? Another alternative would be to use a 3-columnmulticolfor your single centredTitle 4, leaving some empty content in column 1 with a `\columnbreak. – Werner Aug 13 '12 at 16:52