Looking at the etymology, impeach is from old-french "empecher", and "em" was an alternative form of the old-french prefix "en".
And "empecher" is itself is derived from the late latin "impedicare", which uses the Latin prefix "im" from which the French prefix comes. And is prefixed to "predica".
So it it is a prefix.
Of course, the latin (and French) prefixes aren't used to indicate opposite meaning, like "in" often is. But that's just yet more bullshit.
To be fair it was a prefix in the Latin word that it's ultimately derived from. We still treat it a little like a prefix when we use the im- part of the related "import" like a prefix, as we also have "export" and "transport"