To load from memory, the only thing you need is to have the file copied to memory.
Read the file using normal c++ file operations, copy it - with byte accuracy - to somewhere in memory, most probably in the heap. Then, you simply pass a pointer, which points to the beginning of that memory, and the size of the file/memory to loadFromMemory.
If you store multiple files into one (the file would just be all the files concatenated), after loading that file into memory, you will need pointers to the beginning of each 'file' inside that block (as well as their sizes).
Instead, you may want to just load the parts of the file that you need separately (obviously, you don't have to load an entire file).
Note that the file in memory must be in exactly the same format as the file. That is, it must have all headers and meta-data. It reads the memory as if it was a file.
If you're looking to save many files into one using SFML, you could use SFML to save the individual file temporarily and then copy that file onto the end of the final 'bundle' file.
You could also use this method to save to memory. That is, save to file temporarily, load it into memory, then delete the temporary file.