The when would be anywhere from a week before they want to leave up to a day or three before I believe. You could have someone different think of moving out in consecutive days as well.
As for the who.. That depends on who you befriend in the game. I've noticed being good friends and spam talking a few villagers will get them to tell me who is moving more. Usually my normals and lazies tell me more often, but the others have mentioned rumors as well.