Mathematica 213 - 42 = 171
The ticks and hour labels are placed on the unit circle.
H and M revolve around the clock center showing the whole number of completed hours and minutes, respectively.
S updates its position several times each second.
Two versions are shown: a version that plots text in the Cartesian plane, and another that displays text characters in a grid.
This version plots the characters into the Cartesian plane.
d = Dynamic; t = Table; x = Text;i_~u~k_ := {Sin[2 \[Pi] i/k], Cos[2 \[Pi] i/k]};
d[{f = Date[], Clock[{1, 1}, 1]}]
Graphics[d@{t[x[".", u[i, 60]], {i, 60}],t[x[i, u[i, 12]], {i, 12}],
x["H", .7 u[f[[4]], 12]],x["M", .8 u[f[[5]], 60]],x["S", .9 u[f[[6]], 60]]}]
The clock below shows the time 3:08:17.

Terminal or Grid Version: 430 316 chars (253 with bonus discount)
This version works much the same, but places the characters in a 61 x 61 cell grid rather than in the Cartesian plane.
It could still be golfed a bit, but I merely wanted to show a (sloppier) terminal-like output in Mathematica.
d = Dynamic; i_~u~k_ := Round /@ (10 {Sin[2 \[Pi] (i + 3 k/4)/k],
Cos[2 \[Pi] (i + 3 k/4)/k]}); d[{f = Date[], Clock[]}]
z = Round /@ (# u[f[[#2]], #3] + 11) -> #4 &;
t = Table[( u[i, 12] + 11) -> i, {i, 12}];
d@Grid[ReplacePart[ConstantArray["", {21, 21}],
Join[z @@@ {{.9, 5, 60, "M"}, {.8, 4, 12, "H"}},
DeleteCases[Table[( u[i, 60] + 11) -> "*", {i, 60}], x_ /; MemberQ[t[[All, 1]], x[[1]]]], t]]]
The clock below displays 11:06.
