If you try this code, you would see your data populate column 1.
grdTest.PopulateValues(GridRangeInfo.Cells(1, 1, UBound(x), 1), x)
The method only populates across a row if there are two indices in the datasource. If there is only a single index in the datasource, it thinks you want to change rows with each new index.
But is is straight-forward (and ver quick) to use SetCellInfo to populate across a row by looping through the row and calling SetCellInfo on each item. (This is what PopulateCells does).
'loop through this code
Dim style as GridStyleInfo = New GridStyleInfo()
style.CellValue = X(i)
grdTest.SetCellInfo(row, i, sfstyle, Syncfusion.Styles.StyleModifyType.Override)