It's easy with Lua. I suppose you want to add "permanent" visibility, same as a unit has within 2-tiles.
So, in Event ImprovementAddedToMap you must check if this is Watchtower. If so, for the player who owns it, reveal tiles around it within given radius for full visibility (RevealedState,VISIBLE).
That's all.
More problematic would be to hide those tiles once it is pillaged or destroyed. They need to go back to REVEALED state, but some of them could stay visible due to units / borders / other watchtowers.