Sounds like something internal to me!
You can get a stethoscope for pretty cheap. Or just a long rod, metal works best. Place the rod or stethoscope on random parts of the engine and listen for when it is loudest. Use extreme caution when checking pulleys. Of course you want to put the stethoscope on the mounting bolt for the pulley, not the pulley itself. Also be very careful not to interfere with the spinning fan.
A long screwdriver will also work well. Just put on your common sense hat when doing this and don't lose a hand/finger/arm.
You can try to listen to the block. The head. Pulleys. Anyplace where you think a rattle is coming from.
Also, if you wear jewelery it is advisable to remove all jewelery so it's not dangling into the engine bay. Same for loose fitting clothing.