By using the vertex parenting technique from here:
Passing GeoNodes attribute to Shader frame offset
As well as the new Simulation Nodes feature in Blender 3.6β, you can access speed (and even acceleration with a slightly more elaborate setup), by creating a new cube, ⭾ Tab, M, A Merge at Center to have just one vertex, and adding a geonodes setup like this:
Now the parented empty's position is the velocity of the Cube:
And accessing the empty's position in a driver should be straight-forward.
Notice that in this case I converted the acceleration to a direction-less scalar, just to show this is also possible. In order to read it in a driver, just access any location component ($x$/$y$/$z$) of the empty:
Before B3.6 it can be achieved in various other ways, either using Python for a driver:
Possible to use object speed/acceleration as driver variable? (I've seen tons of similar questions here)
Or using Python for a simulation - or using a simulation in another way, both explained by me here:
How to create a simulation in Geometry Nodes pre 3.6?