The answer to the actual question posted, "Can an artificial satellite stay in orbit forever?" (where "forever" is assumed to be a couple of billion of years) is maybe.
There are obvious constraints: the satellite could not be in low-Earth orbit (aka, LEO) due to decay from friction and gravitational variations of the Earth, or even in higher orbits up to and possibly beyond geosynchronous orbit, for the same reason.
Also, the satellite would have to be so massive, that micro-meteoroid impacts would not significantly change its orbit. What is the proof of this? Our moon has been in Earth orbit for several billion years, and while it is drifting (very very slowly) away, it's still there. It is in theory possible to construct a massive artificial satellite that would be in a similar orbit (although not too similar, or the Moon might disturb it). I'm thinking of something along the lines of a Death Star here.
And even then, with a massive Death Star, there is always some tiny chance that something else (close-passing comet, or an asteroid impact) disturbs it. But is it possible? I think that it is.