As a first attempt at solving this, the everyshi package is of great help. In the definition below, a choice between left/right tag is made based on whether the page number is odd/even:
\usepackage{everyshi}% http://ctan.org/pkg/everyshi
\usepackage{xifthen}% http://ctan.org/pkg/xifthen
...
\makeatletter
\EveryShipout{%
\ifthenelse{\isodd{\value{page}}}% Test page number
{\global\tagsleft@true}% Following page will have left-tagged equations
{\global\tagsleft@false}% Following page will have right-tagged equations
}
\makeatother
There's one minor hiccup. Whenever typesetting an equation at the bottom of a page that does not entirely fit and has to be broken/flushed to the next, the \EveryShipout command is "too late" in modifying the tag location (either left or right). One remedy for this is some manual intervention to make sure the equation is pushed to the next page after the page is shipped out (for example, by issuing a manual \break or perhaps using the needspace package). The latter, perhaps more elegant and automated approach, requires the definition of a new environment (using the environ package):
\usepackage{needspace}% http://ctan.org/pkg/needspace
\usepackage{environ}% http://ctan.org/pkg/environ
...
\NewEnviron{altalign}{% Alternating tag align \begin{altalign} ... \end{altalign}
\setbox0=\hbox{% Store contents in box0
\begin{minipage}{\linewidth}\begin{align*}% Unnumbered align
\BODY
\end{align*}\end{minipage}
}%
\Needspace{\ht0}% Need exactly height of box0 at the bottom of the page
\begin{align}
\BODY% Typeset regular tagged align
\end{align}
}
The use of the environ package \NewEnviron is essential here, since the body/contents of an environment needs to be captured in order to use it (\BODY in this case). In essence, the provided altalign environment typesets the contents of the required align in an align* environment (that is, without equation numbers), embedded in a minipage of width \linewidth, and stores everything in a box (box0). Then, \Needspace is issued to either do nothing if there is enough space (\ht0) on the page, or \break if not. Subsequently, the equations are typeset in the traditional align (numbered) environment, this time with the correct addition of EveryShipout. The solution works since the align environment does not break across pages/columns and can therefore be treated as a single block/box.

\ifodd\pageref{eqn:label}– Aug 29 '11 at 08:11