I would say there are essentially two main groups or categories of techniques that are commonly used to do this ...
1) Time domain
e.g.
a) normalized or 'regular' cross-correlation
b) sum of squared differences
c) sum of absolute differences
d) etc
These (or similar) methods would be implemented/realized in a circuit by applying (integer) delays/lags to one of the channels, before applying one of the listed similarity/dissimilarity operations. A filter-bank results, with each sub-filter in the bank evaluating a different lag. Interpolation might then be used to find the non-integer maximum/minimum in the cross-correlation vector produced. A pre-filter might be applied beforehand to remove noise.
Time domain techniques are probably more efficient if it is known in advance that only a few integer delays need to be evaluated - as might be the case when two closely-spaced omni-directional sensors are used to do direction finding of impulsive or broad-band signals.
2) Frequency domain
These methods would be implemented/realized in a circuit using a bank of frequency analyzers to each channel. From here, do any whitening required, form the cross-spectral density and evaluate the inverse DFT at the lags/delays of interest, or analyse the phase response.
Frequency-domain methods are probably better when processing narrow-band signals.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I reckon beamforming (no so good for two channels) would fall under one of the above categories, depending on how it is implemented (i.e. delay-and-sum or via an FFT).
Can you think of any techniques that do not fit under one of the two main classes enumerated above?
Thanks in advance for your help.