Can I use bytes instead of floats for vertices?

When creating a procedural mesh, the vertex coordinates never have values even close to 255.

My meshes have a LOT of vertices. With each element consuming a float, this takes up a lot of memory. Is there any way to specify a byte data type for vertices instead of floats, like with DX and OpenGL?

No, Unity uses floats only. Whether the coordinates are close to 255 doesn't matter anyway, since you need floats for values like 1.105 and so on. For imported meshes, you have the option of using mesh compression.