Update
As Martin Schröder and AlexG pointed out, there are now three packages that support print-only content out of the box: ocg-p, ocgx and ocgx2. The syntax to create the optional content group is the same for all of them, but ocgx2 has the additional advantage of supporting LuaLaTeX as well:
\documentclass{article}
\usepackage{ocgx2}
\begin{document}
This text is always visible.
\begin{ocg}[printocg=always]{Hard copy}{printonly}{0}
This can only be seen if the document is printed.
\end{ocg}
This text is visible in both the soft and the hard copy.
\end{document}
Output
Soft copy:

Hard copy:

Original answer
This is possible using optional content groups, which offer the properties ViewState and PrintState to control whether the group content should be visible in the soft or in the hard copy. The following proof of concept defines an environment printonly for things that should only be visible when printing the document.
\documentclass{article}
\makeatletter
% Create optional content group dictionary for print-only content
\immediate\pdfobj{%
<<%
/Type/OCG%
/Name(Hard copy)%
/Usage<<%
/Print<<%
/PrintState/ON%
>>%
/View<<%
/ViewState/OFF%
>>%
>>%
>>}
\xdef\ocg@printonly{\the\pdflastobj\space 0 R}
% Add OCG to resource dictionary
\immediate\pdfobj{<</OCprintonly\space\ocg@printonly\space>>}
\xdef\ocg@mapping{\the\pdflastobj\space 0 R}%
\begingroup
\edef\x{\endgroup
\pdfpageresources{%
\the\pdfpageresources%
/Properties \ocg@mapping%
}%
}%
\x
% List of all optional content groups
\newcount\ocg@listocgs
\pdfobj reserveobjnum
\ocg@listocgs=\pdflastobj
% Create optional content usage dictionary
\pdfcatalog{%
/OCProperties<<%
/OCGs \the\ocg@listocgs\space0 R\space%
/D<<%
/Order [\ocg@printonly\space]% if this line is removed, the OCG isn't shown in the layer toolbar of the viewer
/OFF [\ocg@printonly\space]%
/AS[%
<<%
/Event/View%
/OCGs \the\ocg@listocgs\space0 R\space%
/Category[/View]%
>>%
<<%
/Event/Print%
/OCGs \the\ocg@listocgs\space0 R\space%
/Category[/Print]%
>>%
<<%
/Event/Export%
/OCGs \the\ocg@listocgs\space0 R\space%
/Category[/Print]%
>>%
]%
>>%
>>}
% List all OCGs
\AtEndDocument{%
\immediate\pdfobj useobjnum \ocg@listocgs {%
[\ocg@printonly\space]%
}%
}%
% "printonly" environment for content which should only be visible when the document is printed
\newenvironment{printonly}{%
\pdfliteral{/OC /OCprintonly\space BDC}%
}{%
\pdfliteral{EMC}%
}
\makeatother
\begin{document}
This text is always visible.
\begin{printonly}
This can only be seen if the document is printed.
\end{printonly}
This text is visible in both the soft and the hard copy.
\end{document}
The code is heavily inspired by ocg.sty, which is distributed with Asymptote; some information about it can be found on texample.net. However it is not necessary for this example to have the package installed.