With GDAL, you would need to create a VRT file. This needs to be done by hand for what you want, but it's not difficult and is explained here. But for completeness, this is what you need to do:
Using a text editor, copy this snippet into it and save it as whatever.vrt The fields should be self explanitory, but note that without column headings in the CSV file (that is the source ASCII file you have) the fields you use must be "field_n" where n=1 is the first column.
<OGRVRTDataSource>
<OGRVRTLayer name="test">
<SrcDataSource>test.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="field_10" y="field_9" z="field_20"/>
</OGRVRTLayer>
</OGRVRTDataSource>
The next step is to run gdal_grid which will interpolate between points if you ask it to. The minimum you need on the command line is:
gdal_grid -ot Float32 -l test test.vrt test.tif
Where -l is the name of the layer as specified in the OGRVRTLayer tag in the VRT. There are many options you can add to gdal_grid to get the results you want, so look here for them all, as well as some extra stuff about VRT files.
If you're not confident with the command line, the latest QGIS provides the gdal_grid function as an option in the Raster menu, but the building of the VRT part has to be done by hand because the QGIS one only deals with rasters.