The new rows that you see are not rows of the worksheet but rows of the grid. The grid by default expands the rows and columns defined in the worksheet so that the user has a visual impression like in the Office applications. You can turn off this behavior when you remove "aeDefault" from the "AutoExpand" options of the worksheet.
Grid:= TsWorksheetGrid.Create(Self);
with Grid do
begin
[...]
AutoExpand := AutoExpand - [aeDefault];
[...]
end;
BTW, your demo project probably has copies of the fpspreadsheet units in its own folder. You can do this, but you should be aware that this is not the standard way to work with external libraries in Lazarus. Go to "Package" > "Open package file" and navigate to the folder to which you had downloaded the fpspreadsheet fies. Load the package file "laz_fpspreadsheet.lpk" and click "Compile". Repeat with "laz_fpspreadsheet_visual.lpk" and "laz_fpspreadsheet_visual_dsgn.lpk". In case of the latter file then click "Use" > "Install" to install the visual components into the IDE. If you want to use units in a project, open the project options, click on "Add" > "New Requirement" and select the package from the list. If you primarily work with the visual components such as the worksheetgrid simply select the component from the component palette and drop it on the form. Do NOT set the unit path in the project options to the directories containing the package units; if you have done the package compilation and installation the IDE knows where to find the compiled units.
Another remark: When you create the worksheet grid by code and pass a non-nil parameter to the Create constructor then you should not explicitly free the grid yourself because the component that you specified in Create will automatically do this.