You can use minipages:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent\begin{subequations}
\begin{minipage}{.5\textwidth}
\begin{align}
\label{a}
a &= a, \\
\label{c}
c &= c ,
\end{align}
\end{minipage}%
\begin{minipage}{.5\textwidth}
\begin{align}
\label{b}
b &= b ,\\
\label{d}
d &= d .
\end{align}
\end{minipage}
\end{subequations}
\end{document}

Here's another option, adapted from an example from mathmode; numbering now follows the desired sequence:
\documentclass{article}
\usepackage{amsmath}
\newcounter{mySubCounter}
\newcommand{\foureqn}[8]{%
\setcounter{mySubCounter}{0}
\let\OldTheEquation\theequation%
\renewcommand{\theequation}{\OldTheEquation\alph{mySubCounter}}%
\noindent%
\begin{minipage}{.5\textwidth}
\begin{align}
\refstepcounter{mySubCounter}
#1 &= #2 \label{sub\theequation}\\
\addtocounter{equation}{-1}
\addtocounter{mySubCounter}{2}
#5 &= #6 \label{sub\theequation}
\end{align}
\end{minipage}%
\addtocounter{equation}{-1}%
\addtocounter{mySubCounter}{-1}%
\begin{minipage}{.49\textwidth}
\begin{align}
#3 &= #4 \label{sub\theequation} \\
\addtocounter{equation}{-1}
\addtocounter{mySubCounter}{2}
#7 &= #8 \label{sub\theequation}
\end{align}
\end{minipage}\par\medskip%
\let\theequation\OldTheEquation}
\begin{document}
Some references: \eqref{sub1a}, \eqref{sub1b}, \eqref{sub1c}, and~\eqref{sub1d}
\foureqn{a}{a+b,}{b+c}{b,}{d+c+e}{c,}{d}{d.}
Some other references: \eqref{sub2a}, \eqref{sub2b}, \eqref{sub2c}, and~\eqref{sub2d}
\foureqn{p+q}{r,}{s+t+u}{v+w,}{x}{y+z,}{z}{z.}
\end{document}

Each subequation has an automatic assigned label for cross-referencing; the label is of the form sub<number>, where <number> is the string used to number the subequation.
minipagecommand. Nice solution. Still - as @Jubobs says - the numbering goes vertically first in your example instead of horizontally. I fear I can't simply modify your solution by using horizontal aligns, as then the vertical alignment is not maintained any more. Any ideas how to fix that?? – jjdb May 06 '13 at 15:03\foureqnas many times as you wish without introducing new commands. Now the labels will automatically change every time the command is invoked. Label for subequation(3a), for example, will besub3a, so you can simply say\ref{sub3a}. – Gonzalo Medina May 07 '13 at 15:14alignenvironment. – Gonzalo Medina May 08 '13 at 16:58