I've been trying to achieve the following vertical sidebar effect in LaTeX for my resume, but turns out it's far more difficult than I thought (created easily in InDesign):

I've tried everything I could think of — sideways minipages, parboxes, tables, multirows, and on and on, but nothing's been able to replicate it. I've gotten close, but never managed to get the title flush along the top of the table (not to mention the centered horizontal rule). Any insight on implementing this?
For reference, here's my latest attempt at implementing this with a table and multirow (requires XeLaTeX):
\documentclass{article}
\usepackage{fontspec, multirow, rotating, tabularx, xunicode}
\def\Vhrulefill{\leavevmode\leaders\hrule height 0.7ex depth \dimexpr0.4pt-0.7ex\hfill\kern0pt}
\begin{document}
\begin{tabularx}{\textwidth}{l X}
& \textbf{Spoken Languages} \\
& English, Hebrew (fluent in speaking, reading, and writing) \\
& \\
& \textbf{Programming Languages} \\
& Objective-C, C, Ruby, Java, Python, HTML + CSS/SASS + JavaScript/CoffeeScript \\
& \emph{Familiar with C++, Haskell, PHP} \\
& \\
& \textbf{Technologies} \\
& OS X, iOS, Xcode, Unix/Linux Systems, LaTeX, Shell Scripting, Git, Vim, Jekyll \\
& \emph{Familiar with Windows, Windows Server, MySQL} \\
\multirow{-9}{*}{\begin{sideways}\Vhrulefill~skills\end{sideways}} &
\end{tabularx}
\end{document}
That produces the following output:

Update: Werner's answer is the one I think I'll go with since it fits my needs well; however, I've been trying to get it in a more general form so I can reuse it easily, and I've run into trouble.
I've created a new environment for this, but unfortunately, I can't get the label to align correctly along the top of the body text using the height of the text:
\documentclass{article}
\usepackage{graphicx, tabularx, xcolor}
\usepackage{environ}
\usepackage[margin=1in]{geometry}
\newlength{\sectionheight}
\newlength{\tablewidth}
\NewEnviron{rsection}[3]{%
\setlength{\tablewidth}{#2}
\addtolength{\tablewidth}{-1ex}
\settoheight{\sectionheight}{\begin{tabularx}{\tablewidth}{l #3}\BODY\end{tabularx}}
\begin{tabularx}{\tablewidth}{l #3}
\BODY \\
\raisebox{\normalbaselineskip}{\smash{\rotatebox{90}{%
\color{black!33}\rule[.5ex]{\sectionheight}{.4pt}\llap{\colorbox{white}{\color{black!66}#1}}
}}} &
\end{tabularx}
}
\begin{document}
\begin{rsection}{education}{0.5\textwidth}{X}
& \textbf{Binghamton University, State University of New York} \\
& B.S. — Computer Science · Expected 2016 \\
& \\
& Binghamton University Scholars Program \\
& Binghamton President's Scholars Program
\end{rsection}
\begin{rsection}{skills}{0.5\textwidth}{X}
& \textbf{Spoken Languages} \\
& English, Hebrew (fluent in speaking, reading, and writing) \\
& \\
& \textbf{Programming Languages} \\
& Objective-C, C, Ruby, Java, Python, HTML, CSS, SASS, JavaScript, CoffeeScript \\
& \emph{Familiar with C++, Haskell, PHP} \\
& \\
& \textbf{Technologies} \\
& OS X, iOS, Xcode, Unix/Linux Systems, LaTeX, Shell Scripting, Git, Vim, Jekyll \\
& \emph{Familiar with Windows, Windows Server, MySQL}
\end{rsection}
\end{document}
For some reason, \settoheight{\sectionheight}{\begin{tabularx}{\tablewidth}{l #3}\BODY\end{tabularx}} doesn't return the right height for the text, so the result looks like this:

I'm expecting the label to look right, and for the tables to align next to each other. Any idea what's going wrong?


