If you want this scheme to be any kind of practically secure, each XOR block cipher will need a dedicated one-time-use key. This can be done if you use the private/public key exchange in a way the public key is randomly generated per block. This way, each block will use a different key.
However, this comes with drawbacks. Increased compute time, increased difficulty in managing keys, longer messages make key management much more difficult, and any out-of-order key will break decrypting the message(s).
You could get around this by keeping the public key the same and generating a number of random private keys, since they are kept in storage on each host machine anyways, per each 256bit block and storing the private keys in sequence of the XOR order which will be message-dependent. In this way, you basically get a one-time-pad per 256 bits which exponentially increases, mathematically, the decryption attack difficulty.
For the end of the message, if the last block is less than 256 bits, you will need to pad with random bits somehow so all 256 bit blocks are the same size but also be able to remove those random bits when the intended receiver of the message decrypts. If you want to increase the difficulty, you can set the number of XOR rounds to the number of 256 bit blocks. The more blocks, the more rounds.
I am not suggesting this as a fool-proof, mathematically unbreakable, method for using XOR encryption, but it is a cool concept to play with. Especially if it is just to keep casual users from seeing contents of a message or file.