Have you had a look at the Grid Model that is in the system folder? Specifically /system/expressionengine/models/grid_model.php
This model has methods for creating new Grid Fields (create_field on line 140), add and update columns (save_col_settings on lone 235) and saving data into the grid (save_field_data on line 689). Is this the API you are looking for?
Surfice to say, this Model shows you the code to create grids, columns and data. With a little searching you could probably find the code that calls these model functions for examples on how to use (appologies I don't have a test enviroment to post actual code for you atm) I suspect in the /system/expressionengine/fieldtypes/ft.grid.php is a good place to start for this. Another place is the apply_settings function on line 606 of /system/expressionengine/fieldtypes/libraries/Grid_lib.php
In order to load and use the model, all you need to do in your model is :
//load the Grid Model
//create a new Grid field (PSEUDO)
$settings = array(
'settings_for_grid' => true
$new_field = ee()->grid_model->create_field($settings, 'grid');
//create a column on the new grid
$col_id = 1;
$col_settings = array(
'settings_for_column' => true
$col_ids = ee()->grid_model->save_col_settings($col_settings, $col_id = 1, 'grid');
Seems straight forward enougth, although determining your settings (for the columns look to like 645 ;) ) might be a pain it should work, after all this is how the admin CP creates the fields!
Let us know how you get on mate!