With version 2.5 of the microtype package, available on CTAN since 13 March 2013, the simple answer to my question is "use microtype".
Thanks, Herbert and Joseph, for telling me that this can be done with the microtype package. I did know that microtype can do margin kerning, but I had always thought that this is only about punctuation. In reality, one can adjust the margin kerning for every single letter.
What I had been wondering: Why is the output in Herbert's and Joseph's answer a bit better, but still far from good? The answer, of course, is that the margin kerning table provided by microtype just isn't good enough. So I went ahead and went through all the letters ... The output now looks as follows, and I'm quite happy with it:

Here's the code, which essentially consists of the adjusted margin kerning table (that has now been added to the microtype package):
\documentclass{article}
\textwidth=3.85cm
\usepackage{microtype}
\LoadMicrotypeFile{cmr}
\SetProtrusion
[ name = cmr-it ]
{ }
{
A = {100,100},
B = {83,-40},
C = {165,-75},
D = {75, -28},
E = {80,-55},
F = {85,-80},
G = {153,-15},
H = {73,-60},
I = {140,-120},
J = {135,-80},
K = {70,-30},
L = {87, 40},
M = {67,-45},
N = {75,-55},
O = {150,-30},
P = {82,-50},
Q = {150,-30},
R = {75, 15},
S = {90,-65},
$ = {100,-20},
T = {220,-85},
U = {230,-55},
V = {260,-60},
W = {185,-55},
X = {70,-30},
Y = {250,-60},
Z = {90,-60},
a = {150,-10},
b = {170, },
c = {173,-10},
d = {150,-55},
e = {180, },
f = { ,-250},
g = {150,-10},
h = {100, },
i = {210, },
j = { ,-40},
k = {110,-50},
l = {240,-110},
m = {80, },
n = {115, },
o = {155, },
p = { , },
q = {170,-40},
r = {155,-40},
s = {130, },
t = {230,-10},
u = {120, },
v = {140,-25},
w = {98,-20},
x = {65,-40},
y = {130,-20},
z = {110,-80},
0 = {170,-85},
1 = {230,110},
2 = {130,-70},
3 = {140,-70},
4 = {130,80},
5 = {160, },
6 = {175,-30},
7 = {250,-150},
8 = {130,-40},
9 = {155,-80},
. = { ,500},
{,}= { ,450},
: = { ,300},
; = { ,300},
& = {130,30},
\% = {180,50},
* = {380,20},
+ = {180,200},
@ = {180,10},
~ = {200,150},
( = {300, }, ) = { ,70},
/ = {100,100},
- = {500,300},
\textendash = {500,300}, \textemdash = {400,170},
\textquoteleft = {800,200}, \textquoteright = {800,-20},
\textquotedblleft = {540,100}, \textquotedblright = {500,100}
}
\begin{document}
\noindent\itshape
This is a small text. If jam is what you like, two fingers up,
or whatever. Under certain conditions you see that the left and
right margins flutter.
\end{document}
microtype? – Feb 02 '11 at 13:22microtypeis the way to go in this case. You should IMO put this as an answer, Herbert. – topskip Feb 02 '11 at 13:34mt-cmr.def: Do you mean theA = {50,50}stuff in\SetProtrusion? (And can you explain why the values forcmr-itare chosen in such a way that you still have heavy flutter?) – Hendrik Vogt Feb 02 '11 at 16:36\SetProtrusionlooks like it is exactly what I mean. I have no idea about the values of this font. – topskip Feb 03 '11 at 07:10