If you want to add units/sprites that are on top of the tilemap: (Your buildings might count as this)

store location using world coordinates

draw them using a world2screen coordinate function.

The function will add the map offset to their world coordinates. So if the map offset is (-100,0) and your unit's world coordinate is (0,0), you render at (-100,0) placing them a the top left part of the map, as expected, even though you are scrolled.