Difference between Gabor filtering and Discrete Wavelet Transform
Per se, a  Gabor filter  in image processing is one linear filter at a certain scale and 2D frequency used for orientation filtering and texture analysis.
It would be easier to compare Gabor representations and discrete wavelet transforms. Both are related to a linear decomposition of possibility multidimensional data at different scales with somehow oscillating functions. Main differences are:

Discrete wavelets: critical or non-redundant scheme (stable, invertible), discretize some families of wavelets, more scale-based  though wavelets range from weakly oscillating (Haar) to oscillation (Shannon), often applied separably across dimensions so weakly directional, a lot of statistical and approximation properties (moments, regularity). Their redundant counterparts: discretized continuous wavelets, shift-invariant or stationary wavelets.



Gabor transforms: (highly) redundant decomposition, mostly one shape: a modulated Gaussian, more frequency-based though computed at a couple of scale (Gaussian spread), inherently non-separable or directional. Their non-redundant counterparts: modulated or orthogonal lapped transforms, Malvar wavelets.