Thank you for this excellent question!!
You did not tell us that you are using frozen columns - sure, iGrid.Sys(igSysCellsAreaStartCol) will always return 1 in this case. To get the value you need, you should use the combination of the iGrid1.HScrollBar.Value and iGrid1.FrozenCols properties.
The fact is that if you have frozen columns, iGrid is automatically switched from pixel (smooth) scrolling mode to columns scrolling mode. Perhaps, you have already noticed that you can't have a scrollable column partially hidden by the last frozen column. And the horizontal scroll bar behaves accordingly in this case - its value always reports the number of columns hidden under the frozen band.
Having all this, the value you need is calculated like this:
iGrid1.FrozenCols + iGrid1.HScrollBar.Value + 1