This question led to a new package:
fancytabs
I have a node positioned in a shaded rectangle with:
\newcommand{\tabstyle}{\Large\scshape}
\newcommand{\tabheight}{4cm}
\newcommand{\tabwidth}{1cm}
\newcommand{\tabcount}{6}
\newcommand{\tableftcolor}{white}
\newcommand{\tabrightcolor}{gray!50}
\newcommand{\tabtop}{\tabheight}
\newcommand{\tabtextpos}{0.5}
\newcommand{\fancytab}[2]{%
\begin{tikzpicture}[remember picture,overlay]
\node[yshift={-\tabtop-1*mod(#2-1,\tabcount)*\tabheight},
xshift=-0.5*\tabwidth]
at (current page.north east) {
\tikz\shade[shading=axis,bottom color=\tableftcolor,
top color=\tabrightcolor,shading angle=-90]
(0,0) rectangle (\tabwidth,\tabheight)
node[rotate=90,pos=\tabtextpos] {\tabstyle#1};
};
\end{tikzpicture}%
}
Typically, when \tabtextpos has value 0.5, the text is centered in the shape, both vertically and horizontally:

Now if I used 0.38 to put it more to the left, I get:

which is more to the left, but also down.
How could I put it to the left while still keeping it centered vertically?
Edit:
This code is now part of a module called fancytabs, available on CTAN.