## Javascript (ES6), <s>407</s> <s>400</s> <s>366</s> 360 bytes
I'm counting only the first two "lines" in this snippet as the total count, as the rest of it is code to run it.
<!-- begin snippet: js hide: false -->
<!-- language: lang-js -->
s=`ABCDEFGHIJKLMNOPQRSTUVWXYZ∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Zabcdefghijklmnopqrstuvwxyzɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz&_?!"'.,⅋‾¿¡„,˙'`,f=(i,w)=>(i=i.match(new RegExp(`.{1,${w}}`,"g")),i.map((c,x)=>x%2?" ".repeat(w-c.length)+c.split``.reverse().map(b=>(d=s.indexOf(b),"A"<=b&&"z">=b?s[d+26]:" "==b?b:s[d+8])).join``:c).join`
`)
let input = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel libero arcu. Nunc dictum elementum lectus nec aliquet. Donec dolor nunc, sodales at dolor rhoncus, hendrerit scelerisque purus. Pellentesque vel sagittis libero, et rutrum leo. Nullam vulputate enim et massa dictum, vitae venenatis augue lobortis. Fusce sollicitudin ultrices consequat. Vestibulum quis nunc non tortor eleifend facilisis. In at nunc elit. Aliquam pellentesque, lectus quis aliquam posuere, quam lectus sagittis metus, ut auctor sem quam a neque. Integer rhoncus lobortis nisl. Pellentesque mi dui, laoreet in metus quis, mollis accumsan est. Nunc dignissim tortor ac eleifend tempus. Ut ut tellus aliquam, luctus nulla quis, consectetur nunc. Suspendisse viverra molestie condimentum. Curabitur et hendrerit augue.";
console.log(f(input, 50));
<!-- end snippet -->
###Explanation
s=`A∀ .. ZZaɐ .. &⅋ ..`, //Character translation "map"
f=(i,w)=> //Create a function named "f" that takes an (i)nput string and (w)idth
( //Implicitly return
i=i.match(new RegExp(`.{1,${w}}`,"g")), //Cut string into arrays every w-th match of anything
i.map((c,x)=> //Loop through each element in array by (c)ut at inde(x)
x%2 //If the index is odd
?" ".repeat(w-c.length) //Output spaces for padding
+c.split``.reverse() //Split this cut into each character, and read it backwards
.map((b,d)=>( //Translate each character
d=s.indexOf(b), //Save where this character appears in the mapping
"A"<=b&&"z">=b //If the character is a-zA-Z
?s[d+26] //Print the flipped character by looking 26 characters ahead of where this character is found
:" "==b //Else, if it's a space
?b //Output the space
:s[d+8])) //Else, print the flipped punctuation character (only 8 of these)
.join`` //Join everything back into a continuous string
:c //Else just output the whole cut
).join`
`) //Finally join each cut by a newline
----
- Thanks to Dendrobium for shaving off 6 bytes!
- Thanks to the Closure Compiler for shaving off 34 bytes!