No, X does not render fonts for you, but it can render sequences of anti-aliased pixmap "Glyphs". If you only want to use core X protocol, you'll have to render everything client-side (most libraries do this anyway, usually with cairo library).
What I suggest to try: 1) pre-render all glyphs for your font locally using FreeType; 2) Upload fonts with CreateGlyphSet Xrender request; 3) Draw you string with CompositeGlyphs8/16/32 request. Read section 12 - "Glyph Rendering" of XRender documentation. Each glyph has its own offset value, however there is no way to define kerning pairs.
You'll have to handle other complexities as well (right-to left, vertical, etc). It's a very complex task to do 100% correct, but sans edge cases is doable for sure and a good educational project.
You can look at example of raw socket + xrender communication in my javascript x client library: https://github.com/sidorares/node-x11