Is it possible to view the balance of an address at a specific height, without using any external web api?
This is relatively hard to achieve, because if you wish to allow querying any address at any height you deal with a LOT of data. You probably would need serve database server (cluster).
I'm pretty sure, getting a balance at a specific height from a specific address is not possible over a existing app or API.
You could try built it yourself with bitcoin-core as basis. Maybe have a look at the >1year old address index patch from Johnathan Corgan. But it would required additional to allow a API where you could define the height.
But caching every address at every possible height (Juli 29 2015: 367456, amount of addresses ~250k) is nearly impossible.