I actually found now a fast solution which works quite well for me. In case someone else is facing the same problem I post it here for sake of completeness.
Basically you display the value matrix Z as an image. Luckily the image/ imagesc function allows to locate each pixel on a given axis object. A square will be centered at the given xy-location with no gaps between the pixels. This is what it looks like:
Z = Binnned_Data % matrix containing the data
X = X_Pix_Positions % vector with x-positions, size(Z,1)
Y = Y_Pix_Positions % vector with y-positions, size(Z,2)
Transparency = ones(size(Z))*0.5 % setting the alpha value of each pixel(50%)
figure(999)
hold on;
plot(...) % above mentioned 2D plot
temp_img = imagesc(X,Y,Z,'AlphaData',Transparency);
Of course the transparency is an option but since I'm talking about an overlay ...
Another really usefull option here is to adjust the color range of the pixels by adding
clims = [a,b] % I chose a and b as min/max values in Z
imagesc(temp_img,clims);
That's pretty much it. Still, if someone already has defined a patch-object that does the same job I would be interested to see that.
best,
Stephan