No he makes the arm invisible in the Pre event so it doesnt render via PlayerRenderer but instead renders in the Post event. Therefore the item has already be rendered at the normal arm position.
Not sure you'll have to look at the code where it renders the item(s) being held.
One small point: the item's position will be relative to the arm which you are already adjusting to match the direction the player is looking, so you shouldn't actually need the item to do any additional rotation itself; just have it set up in the json file. Right?
Yes but you'll have to either cancel the players default rendering in the RenderPlayerEvent.Pre and then render everything your self the way you want it. Or you can use reflection to change the players model specifically for the layer the item is rendered in.