See the attachment for a small demo which might fit your needs; the GUI to control auto-scrolling and frozen-display is a bit clumsy, though, and not perfectly intuitive - but you certainly find a better one.
Basically, the visible viewport of the chart is described by the chart's LogicalExtent (a rectangle of TDoublePoint records having the element a and b in the left/bottom and right/top corners, respectively). This property is writable, and thus you can control the visible part of the chart without dropping data points. All you have to do is that whenever data points arrive you must make the LogicalExtent.a.x smaller than the Logicalextent.b.x by the given width of the viewport (in time units). With the exception when there are not yet enough data points: here you simply can do nothing (the chart will slowly become larger) or you can set LogicalExtent.b.x equal to the viewport size to get a more static view.
When you want to see the full viewport with all data you simply call Chart.ZoomFull which sets the LogicalExtent to the corner points to the range given by the data.