1) "By the time you arrive, I'll already be gone "
2 ) "By the time you arrive, I'll already have gone "
I think both are grammatically correct but Are there any differences in meaning? And which one sounds better(more natural)?
The first emphasises the absence, the second, the departure.
The verb 'go' is an intransitive verb. So grammatically it is wrong. In OE, it was used, but it is grammatically wrong. The second one is much better and grammatically right.