我认为heard可以是一个终止性动词,同时也可以是一个持续性动词,要看他那时候解什么意思.如果是“听”这个动作,那就是终止性动词,因为这个动作不会保持很长时间;如果是解“听说”,则可以为持续性,因为听说到的情况是可以持久的.
至于第二个问题,其实当中没有什么道理,这只是英语语法的规则,就是一个普通的用法,你会用就可以了.
现在完成进行时是形容过去进行的事情,而且这件事情还会继续.比如:
I have been listening to the music since i got home.
我回家后就一直在听音乐,(而且现在还会继续听).
现在完成时也是形容过去的事情,不过这件事不会持续.比如:
I had listen to the music when i got home.
我回家后有听过音乐,(不过现在不会继续听).