Solution 1:

The command /tp teleports something relative to itself, so for example /tp @e[type=sheep] ~ ~2 ~ teleports every sheep two blocks up.

The command /teleport teleports something relative to the command executor, so for example /teleport @e[type=sheep] ~ ~2 ~ teleports every sheep two blocks above you, so they all end up above your head, which is what you want.

Also I recommend you to use a tag on the ocelot to mark it as one that should be invisible and scare away creepers. To do that, you can either select it with some selector after spawning and add the tag to it:

/scoreboard players tag @e[type=ocelot,<more selectors here>] add scareCat

Or you can spawn it with the tag:

/summon ocelot ~ ~ ~ {Tags:[scareCat]}

Then you can only select the ocelot with that tag (and in this example also only select a player with the "holdsItem" tag):

/execute @p[tag=holdsItem] ~ ~ ~ teleport @e[type=ocelot,tag=scareCat] ~ ~2 ~

This way you don't become a cat magnet for the whole world while this effect is active, but you get the creeper scariness.

(Another way to not let the ocelot push you would be to add it and you to the same team and then turn collision inside teams off, but that possibly interferes with much more things than this solution.)