we can have the functionality of always block in a program block using a forever construct.
But directly if you put a always block inside program, i think it may give a compilation error.
Now the question is, why we should not have a always block inside a program block so answer for this thing is very simple.
Program block is made to create a testcase, which will start and end after doing some testing (simulation driving to dut) and thus there is no need of always block. Its something like you planned to go to market and buy something and come back, now in this process why you will stuck somewhere and wait for some event or wait in forever loop.
But still if you want to do something you can do using forever loop, and using forever loop it will work also.
Thanks